[jboss-svn-commits] JBL Code SVN: r17737 - in labs/jbosstm/workspace/adinn/XTSGF: WS-C and 197 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 11 12:27:14 EST 2008


Author: adinn
Date: 2008-01-11 12:27:13 -0500 (Fri, 11 Jan 2008)
New Revision: 17737

Added:
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/webservices.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c11_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_handlers.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/build.sh
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType$Identifier.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType$CurrentContext.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-activation-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-registration-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/ws-addr.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/wscoor.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/ServiceRegistryWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddrws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddrws/AddressingHelper.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContextWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifierWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandlerWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstantsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/WSCOORClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/ActivationPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/RegistrationPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinatorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapperWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapperWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinatorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageIdWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t11_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_handlers.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/build.sh
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-orig.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-coordinator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-participant-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/build.sh
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-coordinator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-initiator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-coordinator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-participant-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-participant-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-coordinator-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-participant-binding.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba.wsdl
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/ws-addr.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsat.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsba.xsd
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXWSConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationClient.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallbackWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationCoordinatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationParticipantPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionWSConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/StateWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallbackWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionCoordinatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionInitiatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CoordinatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/ParticipantPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityWSConstants.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEventsWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClientWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionCoordinatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionParticipantPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionCoordinatorPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionParticipantPortTypeImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManagerWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminatorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipantWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminationCoordinatorProcessorWSImpl.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngineWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStubWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/ContextWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFWSInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManagerWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistryWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/InitializerWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf11.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf11_web-app.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactoryWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelperWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessorWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronizationWS.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityWSImple.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst11.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx11.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction11.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity11.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wst.xml
   labs/jbosstm/workspace/adinn/XTSGF/ext/wsbrew.jar
Removed:
   labs/jbosstm/workspace/adinn/XTSGF/ext/jaxws-2_1-mrel2-api.jar
Modified:
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/Sequencer.java
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Environment.java
   labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/WSTXInitialisation.java
   labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml
   labs/jbosstm/workspace/adinn/XTSGF/build.xml
   labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml
   labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/BasicClient.java
   labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml
   labs/jbosstm/workspace/adinn/XTSGF/ext/saaj-api.jar
Log:
version which works on GF modulo missing W3CEndpointReference functionality

Modified: labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -63,9 +63,13 @@
 
     <property name="jta.lib.jars" value="jbossjta.jar"/>
     <property name="jta.ext.jars" value="jbossts-common.jar commons-logging.jar"/>
-    <property name="xts.ext.jars" value="stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+    <property name="xts.ext.jars" value="stax-api-1.0.jar wstx-asl-2.0.3.jar wsbrew.jar"/>
     <property name="xts.ext.compile.jars" value="servlet.jar saaj-api.jar"/>
 
+    <!-- we need gf jars from the gf lib dir -->
+    <property name="gf.dir" value="${env.GF_HOME}/lib"/>
+    <property name="gf.lib.jars" value="javaee.jar"/>
+
     <property name="tests.libs" value="junit.jar"/>
 
     <property name="javac.debug"             value="on"/>
@@ -76,6 +80,8 @@
         <fileset dir="${com.arjuna.xts.ext}" includes="${xts.ext.jars} ${xts.ext.compile.jars}"/>
         <fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
         <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
+	<!-- add extra gf jars to path -->
+        <fileset dir="${gf.dir}" includes="${gf.lib.jars}"/>
     </path>
 
     <path id="tests.lib.path">
@@ -154,9 +160,12 @@
     </target>
 
     <target name="dev-jars" depends="dev-compile, dev-resourcebundle" >
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wscoor-activation-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wscoor-activation-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wscoor-registration-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wscoor-registration-binding.wsdl"/>
         <jar jarfile="${build.dev.lib.dir}/ws-c.jar">
-            <fileset dir="${build.dev.classes.dir}"/>
-            <manifest>
+            <fileset dir="${build.dev.classes.dir}" excludes="com/arjuna/webservices/wscoor/sei/** handlers.xml"/>
+            <fileset dir="${build.dev.dd.dir}" includes="wsdl/**"/>
+	  <manifest>
                 <attribute name="Class-Path" value="${jta.ext.jars} ${xts.ext.jars} ${jta.lib.jars} ${jta.ext.jars}"/>
             </manifest>
         </jar>
@@ -169,11 +178,30 @@
                 <filter token="port" value="${port}"/>
             </filterset>
         </copy>
+        <copy file="${dev.dd.dir}/ws-c11_web-app.xml" tofile="${build.dev.dd.dir}/web-app11.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <copy file="${dev.dd.dir}/ws-c_handlers.xml" tofile="${build.dev.classes.dir}/handlers.xml"/>
         <war warfile="${build.dev.webapps.dir}/ws-c.war" webxml="${build.dev.dd.dir}/web-app.xml">
             <manifest>
                 <attribute name="Class-Path" value="ws-c.jar"/>
             </manifest>
         </war>
+        <war warfile="${build.dev.webapps.dir}/ws-c11init.war" webxml="${build.dev.dd.dir}/web-app11.xml">
+            <manifest>
+                <attribute name="Class-Path" value="ws-c.jar"/>
+            </manifest>
+	</war>
+        <war warfile="${build.dev.webapps.dir}/ws-c11.war" needxmlfile="false">
+	    <webinf dir="${build.dir}/dev" includes="classes/com/arjuna/webservices/wscoor/sei/* classes/handlers.xml"/>
+	    <webinf dir="${build.dev.dd.dir}" includes="wsdl/**"/>
+            <manifest>
+                <attribute name="Class-Path" value="WEB-INF/classes ws-c.jar"/>
+            </manifest>
+        </war>
     </target>
 
     <target name="tests-compile" depends="dev-webapps">

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/webservices.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/webservices.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/webservices.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,67 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags.
+  See the copyright.txt in the distribution for a full listing
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+  MA  02110-1301, USA.
+
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<webservices xmlns="http://java.sun.com/xml/ns/j2ee"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+		http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd"
+    xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06"
+    xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl"
+	version="1.1">
+
+	<webservice-description>
+		<webservice-description-name>WS-COOR 1.1 Activation</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/wscoor-binding.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>ActivationPort</port-component-name>
+			<wsdl-port >wscoor:ActivationPortType</wsdl-port>
+			<service-endpoint-interface>org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationPortType</service-endpoint-interface>
+			<service-impl-bean>
+				<ejb-link>com.arjuna.webservices.wscoor.sei.ActivationPortTypeImpl</ejb-link>
+			</service-impl-bean>
+            <!-- we don't actually need a handler for context flow on the activation service -->
+			<handler>
+				<handler-name>Context Handler</handler-name>
+				<handler-class>com.arjuna.webservices.JaxWSHeaderContextProcessorWS</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+	<webservice-description>
+		<webservice-description-name>WS-COOR 1.1 Registration</webservice-description-name>
+
+		<wsdl-file>WEB-INF/wsdl/wscoor-binding.wsdl</wsdl-file>
+
+		<port-component>
+			<port-component-name>RegistrationPort</port-component-name>
+			<wsdl-port>wscoor:RegistrationPortType</wsdl-port>
+			<service-endpoint-interface>org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationPortType</service-endpoint-interface>
+			<service-impl-bean>
+                <ejb-link>com.arjuna.webservices.wscoor.sei.RegistrationPortTypeImpl</ejb-link>
+			</service-impl-bean>
+            <!-- provide a handler fo rth eocntext flow -->
+	                <handler>
+				<handler-name>Context Handler</handler-name>
+				<handler-class>com.arjuna.webservices.JaxWSHeaderContextProcessorWS</handler-class>
+			</handler>
+		</port-component>
+	</webservice-description>
+</webservices>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c11_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c11_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c11_web-app.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,46 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>Arjuna Web Services and WS-Coordination 1.1</display-name>
+
+    <description>Arjuna Web Services and WS-Coordination 1.1</description>
+
+    <!-- base URL for location of Coordination 1.1 services -->
+    <context-param>
+        <param-name>BaseURI</param-name>
+	<param-value>http://@hostname@:@port@/ws-c11</param-value>
+    </context-param>
+    <!-- Initialise WS Coord 1.1 services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.ActivationCoordinatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wscoor.server.RegistrationCoordinatorWSInitialisation</listener-class>
+    </listener>
+
+    <!-- Initialise WS-C 1.1  -->
+    <listener>
+        <listener-class>com.arjuna.wsc.messaging.deploy.CoordinationWSInitialisation</listener-class>
+    </listener>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_handlers.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_handlers.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/ws-c_handlers.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2007, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2007,
+  @author JBoss Inc.
+-->
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee" 
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
+    <handler-chain>
+	<handler>
+		<handler-name>Instance Identifier Handler</handler-name>
+		<handler-class>com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS</handler-class>
+	</handler>
+	<handler>
+		<handler-name>WS Addressing Server Handler</handler-name>
+		<handler-class>org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler</handler-class>
+	</handler>
+    </handler-chain>
+</handler-chains>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/build.sh
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/build.sh	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/build.sh	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,28 @@
+#
+#
+#
+
+if [ ! -d tmp ] ; then
+    mkdir tmp
+fi
+
+if [ ! -d tmp/classes ] ; then
+    mkdir tmp/classes
+fi
+
+if [ ! -d tmp/src ] ; then
+    mkdir tmp/src
+fi
+
+# delete old generated versions -- any changes should be made to a copy!
+
+rm -rf tmp/classes/* tmp/src/*
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /wsdl/wscoor.wsdl -o tmp/classes -s tmp/src -k wsdl/wscoor-binding.wsdl
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /home/adinn/tmp/wsdl/wscoor.wsdl -o tmp/classes -s tmp/src -k wsdl/wscoor-binding.wsdl
+
+# $GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wscoor.wsdl -d tmp/classes -s tmp/src wsdl/wscoor-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wscoor-activation-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wscoor-registration-binding.wsdl

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType$Identifier.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType$Identifier.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType$CurrentContext.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType$CurrentContext.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,34 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "ActivationPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface ActivationPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     * @return
+     *     returns org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType
+     */
+    @WebMethod(operationName = "CreateCoordinationContextOperation", action = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext")
+    @WebResult(name = "CreateCoordinationContextResponse", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+    public CreateCoordinationContextResponseType createCoordinationContextOperation(
+        @WebParam(name = "CreateCoordinationContext", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+        CreateCoordinationContextType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "ActivationService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl")
+public class ActivationService
+    extends Service
+{
+
+    private final static URL ACTIVATIONSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        ACTIVATIONSERVICE_WSDL_LOCATION = url;
+    }
+
+    public ActivationService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public ActivationService() {
+        super(ACTIVATIONSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "ActivationService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ActivationPortType
+     */
+    @WebEndpoint(name = "ActivationPortType")
+    public ActivationPortType getActivationPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "ActivationPortType"), ActivationPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,75 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "CoordinationContext")
+public class CoordinationContext
+    extends CoordinationContextType
+{
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,254 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+
+/**
+ * <p>Java class for CoordinationContextType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CoordinationContextType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Identifier">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}Expires" minOccurs="0"/>
+ *         &lt;element name="CoordinationType" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="RegistrationService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CoordinationContextType", propOrder = {
+    "identifier",
+    "expires",
+    "coordinationType",
+    "registrationService"
+})
+public class CoordinationContextType {
+
+    @XmlElement(name = "Identifier", required = true)
+    protected CoordinationContextType.Identifier identifier;
+    @XmlElement(name = "Expires")
+    protected Expires expires;
+    @XmlElement(name = "CoordinationType", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String coordinationType;
+    @XmlElement(name = "RegistrationService", required = true)
+    protected W3CEndpointReference registrationService;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the identifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CoordinationContextType.Identifier }
+     *     
+     */
+    public CoordinationContextType.Identifier getIdentifier() {
+        return identifier;
+    }
+
+    /**
+     * Sets the value of the identifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CoordinationContextType.Identifier }
+     *     
+     */
+    public void setIdentifier(CoordinationContextType.Identifier value) {
+        this.identifier = value;
+    }
+
+    /**
+     * Gets the value of the expires property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Expires }
+     *     
+     */
+    public Expires getExpires() {
+        return expires;
+    }
+
+    /**
+     * Sets the value of the expires property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Expires }
+     *     
+     */
+    public void setExpires(Expires value) {
+        this.expires = value;
+    }
+
+    /**
+     * Gets the value of the coordinationType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCoordinationType() {
+        return coordinationType;
+    }
+
+    /**
+     * Sets the value of the coordinationType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCoordinationType(String value) {
+        this.coordinationType = value;
+    }
+
+    /**
+     * Gets the value of the registrationService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getRegistrationService() {
+        return registrationService;
+    }
+
+    /**
+     * Sets the value of the registrationService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setRegistrationService(W3CEndpointReference value) {
+        this.registrationService = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class Identifier {
+
+        @XmlValue
+        @XmlSchemaType(name = "anyURI")
+        protected String value;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new attribute
+         * by updating the map directly. Because of this design, there's no setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for CreateCoordinationContextResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CreateCoordinationContextResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContext"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CreateCoordinationContextResponseType", propOrder = {
+    "coordinationContext",
+    "any"
+})
+public class CreateCoordinationContextResponseType {
+
+    @XmlElement(name = "CoordinationContext", required = true)
+    protected CoordinationContext coordinationContext;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the coordinationContext property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CoordinationContext }
+     *     
+     */
+    public CoordinationContext getCoordinationContext() {
+        return coordinationContext;
+    }
+
+    /**
+     * Sets the value of the coordinationContext property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CoordinationContext }
+     *     
+     */
+    public void setCoordinationContext(CoordinationContext value) {
+        this.coordinationContext = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,255 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for CreateCoordinationContextType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CreateCoordinationContextType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}Expires" minOccurs="0"/>
+ *         &lt;element name="CurrentContext" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+ *                 &lt;sequence>
+ *                   &lt;any/>
+ *                 &lt;/sequence>
+ *               &lt;/extension>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="CoordinationType" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CreateCoordinationContextType", propOrder = {
+    "expires",
+    "currentContext",
+    "coordinationType",
+    "any"
+})
+public class CreateCoordinationContextType {
+
+    @XmlElement(name = "Expires")
+    protected Expires expires;
+    @XmlElement(name = "CurrentContext")
+    protected CreateCoordinationContextType.CurrentContext currentContext;
+    @XmlElement(name = "CoordinationType", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String coordinationType;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the expires property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Expires }
+     *     
+     */
+    public Expires getExpires() {
+        return expires;
+    }
+
+    /**
+     * Sets the value of the expires property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Expires }
+     *     
+     */
+    public void setExpires(Expires value) {
+        this.expires = value;
+    }
+
+    /**
+     * Gets the value of the currentContext property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CreateCoordinationContextType.CurrentContext }
+     *     
+     */
+    public CreateCoordinationContextType.CurrentContext getCurrentContext() {
+        return currentContext;
+    }
+
+    /**
+     * Sets the value of the currentContext property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CreateCoordinationContextType.CurrentContext }
+     *     
+     */
+    public void setCurrentContext(CreateCoordinationContextType.CurrentContext value) {
+        this.currentContext = value;
+    }
+
+    /**
+     * Gets the value of the coordinationType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCoordinationType() {
+        return coordinationType;
+    }
+
+    /**
+     * Sets the value of the coordinationType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCoordinationType(String value) {
+        this.coordinationType = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+     *       &lt;sequence>
+     *         &lt;any/>
+     *       &lt;/sequence>
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "any"
+    })
+    public static class CurrentContext
+        extends CoordinationContextType
+    {
+
+        @XmlAnyElement(lax = true)
+        protected List<Object> any;
+
+        /**
+         * Gets the value of the any property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the any property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getAny().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link Object }
+         * {@link Element }
+         * 
+         * 
+         */
+        public List<Object> getAny() {
+            if (any == null) {
+                any = new ArrayList<Object>();
+            }
+            return this.any;
+        }
+
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,79 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>unsignedInt">
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "value"
+})
+ at XmlRootElement(name = "Expires")
+public class Expires {
+
+    @XmlValue
+    @XmlSchemaType(name = "unsignedInt")
+    protected long value;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public long getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(long value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,147 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wscoor._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Register_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "Register");
+    private final static QName _RegisterResponse_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegisterResponse");
+    private final static QName _CreateCoordinationContext_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "CreateCoordinationContext");
+    private final static QName _CreateCoordinationContextResponse_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "CreateCoordinationContextResponse");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wscoor._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContextType.Identifier }
+     * 
+     */
+    public CoordinationContextType.Identifier createCoordinationContextTypeIdentifier() {
+        return new CoordinationContextType.Identifier();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextType }
+     * 
+     */
+    public CreateCoordinationContextType createCreateCoordinationContextType() {
+        return new CreateCoordinationContextType();
+    }
+
+    /**
+     * Create an instance of {@link Expires }
+     * 
+     */
+    public Expires createExpires() {
+        return new Expires();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextResponseType }
+     * 
+     */
+    public CreateCoordinationContextResponseType createCreateCoordinationContextResponseType() {
+        return new CreateCoordinationContextResponseType();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextType.CurrentContext }
+     * 
+     */
+    public CreateCoordinationContextType.CurrentContext createCreateCoordinationContextTypeCurrentContext() {
+        return new CreateCoordinationContextType.CurrentContext();
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContext }
+     * 
+     */
+    public CoordinationContext createCoordinationContext() {
+        return new CoordinationContext();
+    }
+
+    /**
+     * Create an instance of {@link RegisterType }
+     * 
+     */
+    public RegisterType createRegisterType() {
+        return new RegisterType();
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContextType }
+     * 
+     */
+    public CoordinationContextType createCoordinationContextType() {
+        return new CoordinationContextType();
+    }
+
+    /**
+     * Create an instance of {@link RegisterResponseType }
+     * 
+     */
+    public RegisterResponseType createRegisterResponseType() {
+        return new RegisterResponseType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "Register")
+    public JAXBElement<RegisterType> createRegister(RegisterType value) {
+        return new JAXBElement<RegisterType>(_Register_QNAME, RegisterType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "RegisterResponse")
+    public JAXBElement<RegisterResponseType> createRegisterResponse(RegisterResponseType value) {
+        return new JAXBElement<RegisterResponseType>(_RegisterResponse_QNAME, RegisterResponseType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link CreateCoordinationContextType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "CreateCoordinationContext")
+    public JAXBElement<CreateCoordinationContextType> createCreateCoordinationContext(CreateCoordinationContextType value) {
+        return new JAXBElement<CreateCoordinationContextType>(_CreateCoordinationContext_QNAME, CreateCoordinationContextType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link CreateCoordinationContextResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "CreateCoordinationContextResponse")
+    public JAXBElement<CreateCoordinationContextResponseType> createCreateCoordinationContextResponse(CreateCoordinationContextResponseType value) {
+        return new JAXBElement<CreateCoordinationContextResponseType>(_CreateCoordinationContextResponse_QNAME, CreateCoordinationContextResponseType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,125 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for RegisterResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="CoordinatorProtocolService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterResponseType", propOrder = {
+    "coordinatorProtocolService",
+    "any"
+})
+public class RegisterResponseType {
+
+    @XmlElement(name = "CoordinatorProtocolService", required = true)
+    protected W3CEndpointReference coordinatorProtocolService;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the coordinatorProtocolService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getCoordinatorProtocolService() {
+        return coordinatorProtocolService;
+    }
+
+    /**
+     * Sets the value of the coordinatorProtocolService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setCoordinatorProtocolService(W3CEndpointReference value) {
+        this.coordinatorProtocolService = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,155 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for RegisterType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ProtocolIdentifier" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="ParticipantProtocolService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterType", propOrder = {
+    "protocolIdentifier",
+    "participantProtocolService",
+    "any"
+})
+public class RegisterType {
+
+    @XmlElement(name = "ProtocolIdentifier", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String protocolIdentifier;
+    @XmlElement(name = "ParticipantProtocolService", required = true)
+    protected W3CEndpointReference participantProtocolService;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the protocolIdentifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getProtocolIdentifier() {
+        return protocolIdentifier;
+    }
+
+    /**
+     * Sets the value of the protocolIdentifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setProtocolIdentifier(String value) {
+        this.protocolIdentifier = value;
+    }
+
+    /**
+     * Gets the value of the participantProtocolService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getParticipantProtocolService() {
+        return participantProtocolService;
+    }
+
+    /**
+     * Sets the value of the participantProtocolService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setParticipantProtocolService(W3CEndpointReference value) {
+        this.participantProtocolService = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,34 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "RegistrationPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface RegistrationPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     * @return
+     *     returns org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType
+     */
+    @WebMethod(operationName = "RegisterOperation", action = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register")
+    @WebResult(name = "RegisterResponse", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+    public RegisterResponseType registerOperation(
+        @WebParam(name = "Register", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+        RegisterType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "RegistrationService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl")
+public class RegistrationService
+    extends Service
+{
+
+    private final static URL REGISTRATIONSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        REGISTRATIONSERVICE_WSDL_LOCATION = url;
+    }
+
+    public RegistrationService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public RegistrationService() {
+        super(REGISTRATIONSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegistrationService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns RegistrationPortType
+     */
+    @WebEndpoint(name = "RegistrationPortType")
+    public RegistrationPortType getRegistrationPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegistrationPortType"), RegistrationPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-activation-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-activation-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-activation-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/wscoor.wsdl" />
+
+  <wsdl:binding name="Activation_SOAPBinding" type="wscoor:ActivationPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CreateCoordinationContextOperation">
+            <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext"/>
+            <wsdl:input name="wscoor:CreateCoordinationContext" message="wscoor:CreateCoordinationContext">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="wscoor:CreateCoordinationContextResponse" message="wscoor:CreateCoordinationContextResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="ActivationService">
+     <wsdl:port binding="wscoor:Activation_SOAPBinding" name="ActivationPortType">
+       <wsaw:UsingAddressing required="true"/>
+      <soap:address location="http://localhost:9000/ws-c11/ActivationService"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/wscoor.wsdl" />
+
+  <wsdl:binding name="Activation_SOAPBinding" type="wscoor:ActivationPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CreateCoordinationContextOperation">
+            <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext"/>
+            <wsdl:input name="wscoor:CreateCoordinationContext" message="wscoor:CreateCoordinationContext">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="wscoor:CreateCoordinationContextResponse" message="wscoor:CreateCoordinationContextResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="Registration_SOAPBinding" type="wscoor:RegistrationPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="RegisterOperation">
+            <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register"/>
+            <wsdl:input name="wscoor:Register" message="wscoor:Register">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="wscoor:RegisterResponse" message="wscoor:RegisterResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="WSCOOR_SOAPService">
+     <wsdl:port binding="wscoor:Activation_SOAPBinding" name="ActivationPortType">
+       <wsaw:UsingAddressing required="true"/>
+      <soap:address location="http://localhost:9000/ws-c11/ActivationSoapPort"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wscoor:Registration_SOAPBinding" name="RegistrationPortType">
+      <soap:address location="http://localhost:9000/ws-c11/RegistrationSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-registration-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-registration-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor-registration-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/wscoor.wsdl" />
+
+  <wsdl:binding name="Registration_SOAPBinding" type="wscoor:RegistrationPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="RegisterOperation">
+            <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register"/>
+            <wsdl:input name="wscoor:Register" message="wscoor:Register">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="wscoor:RegisterResponse" message="wscoor:RegisterResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="RegistrationService">
+    <wsdl:port binding="wscoor:Registration_SOAPBinding" name="RegistrationPortType">
+      <soap:address location="http://localhost:9000/ws-c11/RegistrationService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/wsdl/wscoor.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS President.
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS President.
+Copyright OASIS Open 2006. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself must not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--> 
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06">
+        <wsdl:types>
+          <xs:schema>
+            <xs:import
+                namespace='http://www.w3.org/2005/08/addressing'
+                schemaLocation='http://www.w3.org/2006/03/addressing/ws-addr.xsd' />
+            <xs:import
+                namespace='http://docs.oasis-open.org/ws-tx/wscoor/2006/06'
+                schemaLocation='http://docs.oasis-open.org/ws-tx/wscoor/2006/06/wscoor.xsd' />
+          </xs:schema>
+        </wsdl:types> 
+  <!-- Messages -->
+  <wsdl:message name="CreateCoordinationContext">
+    <wsdl:part name="parameters" element="wscoor:CreateCoordinationContext"/>
+  </wsdl:message>
+  <wsdl:message name="CreateCoordinationContextResponse">
+    <wsdl:part name="parameters" element="wscoor:CreateCoordinationContextResponse"/>
+  </wsdl:message>
+  <wsdl:message name="Register">
+    <wsdl:part name="parameters" element="wscoor:Register"/>
+  </wsdl:message>
+  <wsdl:message name="RegisterResponse">
+    <wsdl:part name="parameters" element="wscoor:RegisterResponse"/>
+  </wsdl:message>
+  <!-- Port Types -->
+  <wsdl:portType name="ActivationPortType">
+    <wsdl:operation name="CreateCoordinationContextOperation">
+      <wsdl:input message="wscoor:CreateCoordinationContext"
+        wsa:Action="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext"/>
+      <wsdl:output message="wscoor:CreateCoordinationContextResponse"
+        wsa:Action="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContextResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="RegistrationPortType">
+    <wsdl:operation name="RegisterOperation">
+      <wsdl:input message="wscoor:Register"
+        wsa:Action="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register"/>
+      <wsdl:output message="wscoor:RegisterResponse"
+        wsa:Action="http://docs.oasis-open.org/ws-tx/wscoor/2006/06/RegisterResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/ws-addr.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/ws-addr.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/ws-addr.xsd	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
+<!--
+    W3C XML Schema defined in the Web Services Addressing 1.0 specification
+    http://www.w3.org/TR/ws-addr-core
+
+   Copyright © 2005 World Wide Web Consortium,
+
+   (Massachusetts Institute of Technology, European Research Consortium for
+   Informatics and Mathematics, Keio University). All Rights Reserved. This
+   work is distributed under the W3C® Software License [1] in the hope that
+   it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+   [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+   $Id: ws-addr.xsd,v 1.1 2006/03/21 10:19:47 hugo Exp $
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2005/08/addressing" targetNamespace="http://www.w3.org/2005/08/addressing" blockDefault="#all" elementFormDefault="qualified" finalDefault="" attributeFormDefault="unqualified">
+	
+	<!-- Constructs from the WS-Addressing Core -->
+
+	<xs:element name="EndpointReference" type="tns:EndpointReferenceType"/>
+	<xs:complexType name="EndpointReferenceType" mixed="false">
+		<xs:sequence>
+			<xs:element name="Address" type="tns:AttributedURIType"/>
+			<xs:element ref="tns:ReferenceParameters" minOccurs="0"/>
+
+			<xs:element ref="tns:Metadata" minOccurs="0"/>
+			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+	<xs:element name="ReferenceParameters" type="tns:ReferenceParametersType"/>
+	<xs:complexType name="ReferenceParametersType" mixed="false">
+		<xs:sequence>
+			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+	<xs:element name="Metadata" type="tns:MetadataType"/>
+	<xs:complexType name="MetadataType" mixed="false">
+		<xs:sequence>
+			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+
+	</xs:complexType>
+	
+	<xs:element name="MessageID" type="tns:AttributedURIType"/>
+	<xs:element name="RelatesTo" type="tns:RelatesToType"/>
+	<xs:complexType name="RelatesToType" mixed="false">
+		<xs:simpleContent>
+			<xs:extension base="xs:anyURI">
+				<xs:attribute name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" default="http://www.w3.org/2005/08/addressing/reply"/>
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:simpleType name="RelationshipTypeOpenEnum">
+		<xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+	</xs:simpleType>
+	
+	<xs:simpleType name="RelationshipType">
+		<xs:restriction base="xs:anyURI">
+			<xs:enumeration value="http://www.w3.org/2005/08/addressing/reply"/>
+		</xs:restriction>
+
+	</xs:simpleType>
+	
+	<xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+	<xs:element name="From" type="tns:EndpointReferenceType"/>
+	<xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+	<xs:element name="To" type="tns:AttributedURIType"/>
+	<xs:element name="Action" type="tns:AttributedURIType"/>
+
+	<xs:complexType name="AttributedURIType" mixed="false">
+		<xs:simpleContent>
+
+			<xs:extension base="xs:anyURI">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<!-- Constructs from the WS-Addressing SOAP binding -->
+
+	<xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+	
+	<xs:simpleType name="FaultCodesOpenEnumType">
+
+		<xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+	</xs:simpleType>
+	
+	<xs:simpleType name="FaultCodesType">
+		<xs:restriction base="xs:QName">
+			<xs:enumeration value="tns:InvalidAddressingHeader"/>
+			<xs:enumeration value="tns:InvalidAddress"/>
+			<xs:enumeration value="tns:InvalidEPR"/>
+			<xs:enumeration value="tns:InvalidCardinality"/>
+			<xs:enumeration value="tns:MissingAddressInEPR"/>
+
+			<xs:enumeration value="tns:DuplicateMessageID"/>
+			<xs:enumeration value="tns:ActionMismatch"/>
+			<xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+			<xs:enumeration value="tns:DestinationUnreachable"/>
+			<xs:enumeration value="tns:ActionNotSupported"/>
+			<xs:enumeration value="tns:EndpointUnavailable"/>
+		</xs:restriction>
+	</xs:simpleType>
+	
+	<xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType"/>
+
+	<xs:complexType name="AttributedUnsignedLongType" mixed="false">
+		<xs:simpleContent>
+			<xs:extension base="xs:unsignedLong">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType"/>
+	<xs:complexType name="AttributedQNameType" mixed="false">
+
+		<xs:simpleContent>
+			<xs:extension base="xs:QName">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+	
+	<xs:element name="ProblemAction" type="tns:ProblemActionType"/>
+	<xs:complexType name="ProblemActionType" mixed="false">
+
+		<xs:sequence>
+			<xs:element ref="tns:Action" minOccurs="0"/>
+			<xs:element name="SoapAction" minOccurs="0" type="xs:anyURI"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+</xs:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/wscoor.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/wscoor.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/dd/wscoor1.1/xsd/wscoor.xsd	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  
+OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS President.
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS President.
+Copyright OASIS Open 2006. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself must not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-->
+<xsd:schema targetNamespace="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+  <xsd:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd"/>
+  <xsd:element name="Expires">
+    <xsd:complexType>
+      <xsd:simpleContent>
+        <xsd:extension base="xsd:unsignedInt">
+          <xsd:anyAttribute namespace="##other" />
+        </xsd:extension>
+      </xsd:simpleContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:complexType name="CoordinationContextType">
+    <xsd:sequence>
+      <xsd:element name="Identifier">
+        <xsd:complexType>
+          <xsd:simpleContent>
+            <xsd:extension base="xsd:anyURI">
+              <xsd:anyAttribute namespace="##other" />
+            </xsd:extension>
+          </xsd:simpleContent>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element ref="wscoor:Expires" minOccurs="0" />
+      <xsd:element name="CoordinationType" type="xsd:anyURI" />
+      <xsd:element name="RegistrationService" type="wsa:EndpointReferenceType" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="CoordinationContext">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="wscoor:CoordinationContextType">
+          <xsd:sequence>
+            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:complexType name="CreateCoordinationContextType">
+    <xsd:sequence>
+      <xsd:element ref="wscoor:Expires" minOccurs="0" />
+      <xsd:element name="CurrentContext" minOccurs="0">
+        <xsd:complexType>
+          <xsd:complexContent>
+            <xsd:extension base="wscoor:CoordinationContextType">
+              <xsd:sequence>
+                <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+              </xsd:sequence>
+            </xsd:extension>
+          </xsd:complexContent>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="CoordinationType" type="xsd:anyURI" />
+      <xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="CreateCoordinationContext" type="wscoor:CreateCoordinationContextType" />
+  <xsd:complexType name="CreateCoordinationContextResponseType">
+    <xsd:sequence>
+      <xsd:element ref="wscoor:CoordinationContext" />
+      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="CreateCoordinationContextResponse" type="wscoor:CreateCoordinationContextResponseType" />
+  <xsd:complexType name="RegisterType">
+    <xsd:sequence>
+      <xsd:element name="ProtocolIdentifier" type="xsd:anyURI" />
+      <xsd:element name="ParticipantProtocolService" type="wsa:EndpointReferenceType" />
+      <xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="Register" type="wscoor:RegisterType" />
+  <xsd:complexType name="RegisterResponseType">
+    <xsd:sequence>
+      <xsd:element name="CoordinatorProtocolService" type="wsa:EndpointReferenceType" />
+      <xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+  <xsd:element name="RegisterResponse" type="wscoor:RegisterResponseType" />
+  <xsd:simpleType name="ErrorCodes">
+    <xsd:restriction base="xsd:QName">
+      <xsd:enumeration value="wscoor:InvalidParameters" />
+      <xsd:enumeration value="wscoor:InvalidProtocol" />
+      <xsd:enumeration value="wscoor:InvalidState" />
+      <xsd:enumeration value="wscoor:CannotCreateContext" />
+      <xsd:enumeration value="wscoor:CannotRegisterParticipant" />
+    </xsd:restriction>
+  </xsd:simpleType>
+</xsd:schema>

Modified: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/Sequencer.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/Sequencer.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/services/framework/startup/Sequencer.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -25,24 +25,39 @@
     public static final int WEBAPP_WSC = 0;
 
     /**
-     * WS-T initialises second
+     * WS-C11 initialises second
      */
-    public static final int WEBAPP_WST = 1;
+    public static final int WEBAPP_WSC11 = 1;
 
     /**
-     * WSCF intiialises third
+     * WS-T initialises third
      */
-    public static final int WEBAPP_WSCF = 2;
+    public static final int WEBAPP_WST = 2;
 
     /**
+     * WS-T11 initialises fourth
+     */
+    public static final int WEBAPP_WST11 = 3;
+
+    /**
+     * WSCF intiialises fifth
+     */
+    public static final int WEBAPP_WSCF = 4;
+
+    /**
+     * WSCF intiialises sixth
+     */
+    public static final int WEBAPP_WSCF11 = 5;
+
+    /**
      * WSTCX initialises last
      */
-    public static final int WEBAPP_WSTX = 3;
+    public static final int WEBAPP_WSTX = 6;
 
     /**
-     * there are only four startup apps in the XTS implementation
+     * there are only seven startup apps in the XTS implementation
      */
-    public static final int WEBAPP_MAX = 4;
+    public static final int WEBAPP_MAX = 7;
 
     /**
      * append a startup callback to the end of the liost registered for a particular XTS web app

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/ServiceRegistryWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/ServiceRegistryWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/ServiceRegistryWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices;
+
+import javax.imageio.spi.ServiceRegistry;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * The registry of WS service providers for the WS-C and WS-T services.
+ * @author kevin
+ */
+public class ServiceRegistryWS
+{
+    /**
+     * The registry singleton.
+     */
+    private static final ServiceRegistryWS REGISTRY = new ServiceRegistryWS() ;
+
+    /**
+     * The SOAP service provider registry.
+     */
+    private final Map<String, String> serviceProviderRegistry = new TreeMap<String, String>() ;
+
+    /**
+     * Get the service registry.
+     * @return The service registry.
+     */
+    public static ServiceRegistryWS getRegistry()
+    {
+        return REGISTRY ;
+    }
+
+    /**
+     * Register the specified service.
+     * @param serviceName The service name.
+     * @param url The service url.
+     */
+    public void registerServiceProvider(final String serviceName, final String url)
+    {
+        synchronized(serviceProviderRegistry)
+        {
+            serviceProviderRegistry.put(serviceName, url) ;
+        }
+    }
+
+    /**
+     * Remove the specified service.
+     * @param serviceName The service name.
+     */
+    public void removeServiceProvider(final String serviceName)
+    {
+        synchronized(serviceProviderRegistry)
+        {
+            serviceProviderRegistry.remove(serviceName) ;
+        }
+    }
+
+    /**
+     * Get the service URI.
+     * @param serviceName The service name.
+     * @return The service URI or null if not registered.
+     */
+    public String getServiceURI(final String serviceName)
+    {
+        String uri;
+
+        synchronized(serviceProviderRegistry)
+        {
+            uri = serviceProviderRegistry.get(serviceName) ;
+        }
+
+        return uri;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddrws/AddressingHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddrws/AddressingHelper.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsaddrws/AddressingHelper.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,145 @@
+package com.arjuna.webservices.wsaddrws;
+
+import com.arjuna.wsc.messaging.MessageId;
+
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import java.net.URISyntaxException;
+
+/**
+ * The complete addressing context.
+ * @author kevin
+ */
+public class AddressingHelper
+{
+    protected AddressingHelper()
+    {
+    }
+
+    public static AddressingProperties createOneWayResponseContext(final AddressingProperties addressingProperties, final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties responseProperties = builder.newAddressingProperties();
+        responseProperties.initializeAsReply(addressingProperties, false) ;
+        responseProperties.setMessageID(makeURI(builder, messageID)) ;
+
+        return responseProperties ;
+    }
+
+    /**
+     * Create an addressing context that represents an inline reply to the specified addressing context.
+     * @param addressingProperties The addressing context being replied to.
+     * @param messageID The message id of the new message.
+     * @return The reply addressing context.
+     */
+    public static AddressingProperties createResponseContext(final AddressingProperties addressingProperties, final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties responseProperties = builder.newAddressingProperties();
+        responseProperties.initializeAsReply(addressingProperties, false) ;
+        responseProperties.setMessageID(makeURI(builder, messageID)) ;
+
+        return responseProperties ;
+    }
+
+    /**
+     * Create an addressing context that represents a fault to the specified addressing context.
+     * @param addressingProperties The addressing context being replied to.
+     * @param messageID The message id of the new message.
+     * @return The fault addressing context.
+     *
+     * N.B. Still need to do From, Action, ReplyTo, FaultTo if needed.
+     */
+    public static AddressingProperties createFaultContext(final AddressingProperties addressingProperties, final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties faultProperties = builder.newAddressingProperties();
+        faultProperties.initializeAsReply(addressingProperties, true) ;
+        faultProperties.setMessageID(makeURI(builder, messageID)) ;
+
+        return faultProperties ;
+    }
+
+    /**
+     * Create an addressing context that represents a request to the specified address.
+     * @param address TheendpointReference target address.
+     * @param messageID The message id of the new message.
+     * @return The addressing context.
+     *
+     * N.B. Still need to do From, Action, ReplyTo, FaultTo if needed.
+     */
+    public static AddressingProperties createRequestContext(final String address, final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties requestProperties = builder.newAddressingProperties();
+        requestProperties.setTo(makeURI(builder, address));
+        if (messageID != null) {
+            requestProperties.setMessageID(makeURI(builder, messageID));
+        } else {
+            // client does not care about id but we have to set some id or WSA will complain
+
+            final String dummyID = MessageId.getMessageId();
+
+            requestProperties.setMessageID(makeURI(builder, dummyID));
+        }
+        return requestProperties;
+    }
+
+    /**
+     * Create an addressing context that represents a notification to the specified context.
+     * @param addressingProperties The addressing properties used to derive the notification addressing context.
+     * @param messageID The message id of the new message.
+     * @return The notification addressing context.
+     *
+     * N.B. Still need to do From, Action, ReplyTo, FaultTo if needed.
+     */
+    public static AddressingProperties createRequestContext(final AddressingProperties addressingProperties, final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties requestProperties = builder.newAddressingProperties();
+        requestProperties.initializeAsReply(addressingProperties, false) ;
+
+        if (messageID != null)
+        {
+            requestProperties.setMessageID (makeURI(builder, messageID));
+        }
+
+        return requestProperties;
+    }
+
+    /**
+     * Create an addressing context specifying only the message id for a notification.
+     * @param messageID The message id of the new message.
+     * @return The notification addressing context.
+     */
+    public static AddressingProperties createNotificationContext(final String messageID)
+    {
+        // create this each time so it uses the current thread classloader
+        // this allows the builder class to be redefined via a property
+        AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        final AddressingProperties requestProperties = builder.newAddressingProperties();
+        requestProperties.setMessageID (makeURI(builder, messageID));
+        requestProperties.setAction(makeURI(builder, ""));
+
+        return requestProperties;
+    }
+
+    public static javax.xml.ws.addressing.AttributedURI makeURI(AddressingBuilder builder, String messageID)
+    {
+        try {
+            return builder.newURI(messageID);
+        } catch (URISyntaxException use) {
+            return null;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContextWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContextWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/ArjunaContextWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,81 @@
+package com.arjuna.webservices.wsarj;
+
+import javax.xml.ws.handler.MessageContext;
+
+/**
+ * The arjuna context.
+ * @author kevin
+ */
+public class ArjunaContextWS
+{
+    /**
+     * The key used for the arjuna context within a message exchange.
+     */
+    private static final String ARJUNAWS_CONTEXT_PROPERTY = "org.jboss.xts.ws.context";
+
+    /**
+     * The InstanceIdentifier header.
+     */
+    private InstanceIdentifierWS instanceIdentifier ;
+
+    /**
+     * Default constructor.
+     */
+    private ArjunaContextWS()
+    {
+    }
+
+    /**
+     * Get the instance identifier.
+     * @return The instance identifier.
+     */
+    public InstanceIdentifierWS getInstanceIdentifier()
+    {
+        return instanceIdentifier ;
+    }
+
+    /**
+     * Set the instance identifier.
+     * @param instanceIdentifier The instance identifier.
+     */
+    public void setInstanceIdentifier(final InstanceIdentifierWS instanceIdentifier)
+    {
+        this.instanceIdentifier = instanceIdentifier ;
+    }
+
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return ((instanceIdentifier != null) && instanceIdentifier.isValid()) ;
+    }
+
+    /**
+     * Get the arjuna context from the message context if present.
+     * @param messageContext The message context.
+     * @return The arjuna context or null if not present.
+     */
+    public static ArjunaContextWS getCurrentContext(final MessageContext messageContext)
+    {
+        return (ArjunaContextWS)messageContext.get(ARJUNAWS_CONTEXT_PROPERTY) ;
+    }
+
+    /**
+     * Get the arjuna context from the message context.
+     * @param messageContext The message context.
+     * @return The arjuna context.
+     */
+    public static ArjunaContextWS getContext(final MessageContext messageContext)
+    {
+        final ArjunaContextWS current = (ArjunaContextWS)messageContext.get(ARJUNAWS_CONTEXT_PROPERTY) ;
+        if (current != null)
+        {
+            return current ;
+        }
+        final ArjunaContextWS newContext = new ArjunaContextWS() ;
+        messageContext.put(ARJUNAWS_CONTEXT_PROPERTY, newContext) ;
+        return newContext ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifierWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifierWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/InstanceIdentifierWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,150 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarj;
+
+import org.w3c.dom.Element;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFactory;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+/**
+ * Representation of an InstanceIdentifier element.
+ * @author kevin
+ */
+public class InstanceIdentifierWS
+{
+    /**
+     * The instance identifier.
+     */
+    private String instanceIdentifier ;
+
+    /**
+      * Default constructor.
+      */
+     public InstanceIdentifierWS()
+     {
+     }
+
+    /**
+     * Construct an instance identifier with the specific identifier
+     * @param instanceIdentifier The instance identifier.
+     */
+
+    public InstanceIdentifierWS(final String instanceIdentifier)
+    {
+        this.instanceIdentifier = instanceIdentifier ;
+    }
+
+    /**
+     * Set the instance identifier of this element.
+     * @param instanceIdentifier The instance identifier of the element.
+     */
+    public void setInstanceIdentifier(final String instanceIdentifier)
+    {
+        this.instanceIdentifier = instanceIdentifier ;
+    }
+
+    /**
+     * Get the instance identifier of this element.
+     * @return The instance identifier of the element or null if not set.
+     */
+    public String getInstanceIdentifier()
+    {
+        return instanceIdentifier ;
+    }
+
+    /**
+     * Is the configuration of this element valid?
+     * @return true if valid, false otherwise.
+     */
+    public boolean isValid()
+    {
+        return (instanceIdentifier != null) && (instanceIdentifier.trim().length() > 0);
+    }
+
+    /**
+     * Get a string representation of this instance identifier.
+     * @return the string representation.
+     */
+    public String toString()
+    {
+        return (instanceIdentifier != null ? instanceIdentifier : "") ;
+    }
+
+     /**
+     * Set the identifier on an endpoint reference under construction.
+     * @param builder The endpoint reference builder.
+     * @param identifier The identifier.
+     */
+    public static void setEndpointInstanceIdentifier(final W3CEndpointReferenceBuilder builder, final String identifier)
+    {
+        builder.referenceParameter(createInstanceIdentifierElement(identifier));
+    }
+    
+    /**
+     * Set the identifier on an endpoint reference under construction.
+     * @param builder The endpoint reference builder.
+     * @param instanceIdentifier The identifier.
+     */
+    public static void setEndpointInstanceIdentifier(final W3CEndpointReferenceBuilder builder, final InstanceIdentifierWS instanceIdentifier)
+    {
+        builder.referenceParameter(createInstanceIdentifierElement(instanceIdentifier.getInstanceIdentifier())) ;
+    }
+
+    /**
+     * a soap factory used to construct SOAPElement instances representing InstanceIdentifier instances
+     */
+    private static SOAPFactory factory;
+
+    /**
+     * a name for the WSArj Instance element
+     */
+    private static Name WSARJ_ELEMENT_INSTANCE_NAME;
+
+    /**
+     * Create a SOAPElement representing an InstanceIdentifier
+     * @param instanceIdentifier the identifier string of the InstanceIdentifier being represented
+     * @return a SOAPElement with the InstancreIdentifier QName as its element tag and a text node containing the
+     * suppliedidentifier string as its value
+     */
+
+    private static Element createInstanceIdentifierElement(final String instanceIdentifier)
+    {
+        try {
+            if (factory == null) {
+                factory = SOAPFactory.newInstance();
+                Name name = factory.createName(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER,
+                        ArjunaConstants.WSARJ_PREFIX,
+                        ArjunaConstants.WSARJ_NAMESPACE);
+                WSARJ_ELEMENT_INSTANCE_NAME = name;
+            }
+            SOAPElement element = factory.createElement(WSARJ_ELEMENT_INSTANCE_NAME);
+            element.addTextNode(instanceIdentifier);
+            return element;
+        } catch (SOAPException se) {
+            // TODO log error here (should never happen)
+            return null;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandlerWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandlerWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/handler/InstanceIdentifierHandlerWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,172 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarj.handler;
+
+import com.arjuna.webservices.wsarj.ArjunaConstants;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.ProtocolException;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Header handler for parsing the Arjuna WS instance identifier header.
+ * @author adinn
+ */
+public class InstanceIdentifierHandlerWS implements SOAPHandler<SOAPMessageContext>
+{
+    /**
+     * Gets the header blocks that can be processed by this Handler
+     * instance.
+     *
+     * @return Set of QNames of header blocks processed by this
+     *         handler instance. <code>QName</code> is the qualified
+     *         name of the outermost element of the Header block.
+     */
+    public Set<QName> getHeaders()
+    {
+        return headers;
+    }
+
+    /**
+     * Handle an outgoing message by inserting any current arjuna context attached to the context into the message
+     * headers and handle an incoming message by retrieving the context from the headers and attaching it to the
+     * context,
+     *
+     * @param context the message context.
+     * @return Always return true
+     * @throws RuntimeException               Causes the JAX-WS runtime to cease
+     *                                        handler processing and generate a fault.
+     * @throws javax.xml.ws.ProtocolException Causes the JAX-WS runtime to switch to
+     *                                        fault message processing.
+     */
+    public boolean handleMessage(SOAPMessageContext context) throws ProtocolException
+    {
+        final boolean outbound = (Boolean)context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+        if (outbound) {
+            return handleMessageOutbound(context);
+        } else {
+            return handlemessageInbound(context);
+        }
+    }
+
+    /**
+     * check for an arjuna context attached to the message context and, if found, install its identifier as the value
+     * of a soap message header element
+     * @param context
+     * @return
+     * @throws ProtocolException
+     */
+    private boolean handleMessageOutbound(SOAPMessageContext context) throws ProtocolException
+    {
+        try {
+            ArjunaContextWS arjunaContext = ArjunaContextWS.getCurrentContext(context);
+            if (arjunaContext != null) {
+                InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier();
+                // insert a header into the current message containing the instance identifier as a text element
+                final SOAPMessage soapMessage = context.getMessage();
+                final SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();
+                SOAPHeader soapHeader = soapEnvelope.getHeader() ;
+                if (soapHeader == null)
+                {
+                    soapHeader = soapEnvelope.addHeader() ;
+                }
+                final SOAPHeaderElement headerElement = soapHeader.addHeaderElement(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME);
+                headerElement.setValue(instanceIdentifier.getInstanceIdentifier());
+                headerElement.setMustUnderstand(true);
+            }
+        } catch (Exception se) {
+            throw new ProtocolException(se);
+        }
+
+        return true;
+    }
+
+    /**
+     * check for an arjuna instance identifier element embedded in the soap message headesr and, if found, use it to
+     * label an arjuna context attached to the message context
+     * @param context
+     * @return
+     * @throws ProtocolException
+     */
+    private boolean handlemessageInbound(SOAPMessageContext context)  throws ProtocolException
+    {
+        try {
+            final SOAPMessage soapMessage = context.getMessage();
+            final SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();
+            Iterator<SOAPHeaderElement> iterator = soapEnvelope.getHeader().examineAllHeaderElements();
+            while (iterator.hasNext()) {
+                final SOAPHeaderElement headerElement = iterator.next();
+                if (ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME.equals(headerElement.getElementQName())) {
+                    // found it - clear te must understand flag, retrieve the value and store an arjuna
+                    // context in the message context
+                    headerElement.setMustUnderstand(false);
+                    String identifierString = headerElement.getValue();
+                    if (identifierString != null) {
+                        ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(context);
+                        arjunaContext.setInstanceIdentifier(new InstanceIdentifierWS(identifierString));
+                        break;
+                    }
+                }
+            }
+        } catch (Exception se) {
+            throw new ProtocolException(se);
+        }
+
+        return true;
+    }
+
+    /**
+     * this handler ignores faults but allows other handlers to deal with them
+     *
+     * @param context the message context
+     * @return true to allow fault handling to continue
+     */
+
+    public boolean handleFault(SOAPMessageContext context)
+    {
+        return true;
+    }
+
+    /**
+     * this hanlder ignores close messages
+     *
+     * @param context the message context
+     */
+    public void close(javax.xml.ws.handler.MessageContext context)
+    {
+    }
+
+    /**
+     * a singleton set containing the only header this handler is interested in
+     */
+    private static Set<QName> headers = Collections.singleton(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER_QNAME);
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wsarj/processor/BaseNotificationProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,33 @@
+package com.arjuna.webservices.wsarj.processor;
+
+import com.arjuna.webservices.base.processors.BaseProcessor;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * Utility class handling common response functionality.
+ * @author kevin
+ */
+public abstract class BaseNotificationProcessorWS extends BaseProcessor
+{
+    /**
+     * Get the callback ids.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     * @return The callback ids.
+     */
+    protected String[] getIDs(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        if (arjunaContext != null)
+        {
+            final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            if (instanceIdentifier != null)
+            {
+                return new String[] {instanceIdentifier.getInstanceIdentifier()} ;
+            }
+        }
+        return null ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstantsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstantsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/CoordinationConstantsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,239 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag.  All rights reserved. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-Coordination constants.
+ */
+public interface CoordinationConstantsWS
+{
+    /**
+     * The Namespace.
+     */
+    public String WSCOOR_NAMESPACE = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSCOOR_PREFIX = "wscoor" ;
+
+    public String REGISTRATION_SERVICE_NAME = "RegistrationService";
+
+    public String ACTIVATION_SERVICE_NAME = "ActivationService";
+
+    public String ACTIVATION_ENDPOINT_NAME = "ActivationPortType";
+
+    public String REGISTRATION_ENDPOINT_NAME = "RegistrationPortType";
+
+    public QName REGISTRATION_SERVICE_QNAME = new QName(WSCOOR_NAMESPACE, REGISTRATION_SERVICE_NAME, WSCOOR_PREFIX) ;;
+
+    public QName ACTIVATION_SERVICE_QNAME = new QName(WSCOOR_NAMESPACE, ACTIVATION_SERVICE_NAME, WSCOOR_PREFIX) ;;
+
+    public QName ACTIVATION_ENDPOINT_QNAME = new QName(WSCOOR_NAMESPACE, ACTIVATION_ENDPOINT_NAME, WSCOOR_PREFIX) ;;
+
+    public QName REGISTRATION_ENDPOINT_QNAME = new QName(WSCOOR_NAMESPACE, REGISTRATION_ENDPOINT_NAME, WSCOOR_PREFIX) ;;
+    /**
+     * The Expires element.
+     */
+    public String WSCOOR_ELEMENT_EXPIRES = "Expires" ;
+    /**
+     * The Expires QName.
+     */
+    public QName WSCOOR_ELEMENT_EXPIRES_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_EXPIRES, WSCOOR_PREFIX) ;
+    
+    /**
+     * The Identifier element.
+     */
+    public String WSCOOR_ELEMENT_IDENTIFIER = "Identifier" ;
+    /**
+     * The Identifier QName.
+     */
+    public QName WSCOOR_ELEMENT_IDENTIFIER_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_IDENTIFIER, WSCOOR_PREFIX) ;
+    
+    /**
+     * The RegistrationService element.
+     */
+    public String WSCOOR_ELEMENT_REGISTRATION_SERVICE = "RegistrationService" ;
+    /**
+     * The RegistrationService QName.
+     */
+    public QName WSCOOR_ELEMENT_REGISTRATION_SERVICE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_REGISTRATION_SERVICE, WSCOOR_PREFIX) ;
+    
+    /**
+     * The CoordinationContext element.
+     */
+    public String WSCOOR_ELEMENT_COORDINATION_CONTEXT = "CoordinationContext" ;
+    /**
+     * The CoordinationContext QName.
+     */
+    public QName WSCOOR_ELEMENT_COORDINATION_CONTEXT_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_COORDINATION_CONTEXT, WSCOOR_PREFIX) ;
+    
+    /**
+     * The CurrentContext element.
+     */
+    public String WSCOOR_ELEMENT_CURRENT_CONTEXT = "CurrentContext" ;
+    /**
+     * The CurrentContext QName.
+     */
+    public QName WSCOOR_ELEMENT_CURRENT_CONTEXT_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_CURRENT_CONTEXT, WSCOOR_PREFIX) ;
+    
+    /**
+     * The CoordinationType element.
+     */
+    public String WSCOOR_ELEMENT_COORDINATION_TYPE = "CoordinationType" ;
+    /**
+     * The CoordinationType QName.
+     */
+    public QName WSCOOR_ELEMENT_COORDINATION_TYPE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_COORDINATION_TYPE, WSCOOR_PREFIX) ;
+    
+    /**
+     * The CreateCoordinationContext element.
+     */
+    public String WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT = "CreateCoordinationContext" ;
+    /**
+     * The CreateCoordinationContext QName.
+     */
+    public QName WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT, WSCOOR_PREFIX) ;
+    /**
+     * The CreateCoordinationContext Action.
+     */
+    public String WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT = WSCOOR_NAMESPACE + "/" + WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT ;
+    
+    /**
+     * The CreateCoordinationContextResponse element.
+     */
+    public String WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE = "CreateCoordinationContextResponse" ;
+    /**
+     * The CreateCoordinationContextResponse QName.
+     */
+    public QName WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE, WSCOOR_PREFIX) ;
+    /**
+     * The CreateCoordinationContextResponse Action.
+     */
+    public String WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT_RESPONSE = WSCOOR_NAMESPACE + "/" + WSCOOR_ELEMENT_CREATE_COORDINATION_CONTEXT_RESPONSE ;
+
+    /**
+     * The ProtocolIdentifier element.
+     */
+    public String WSCOOR_ELEMENT_PROTOCOL_IDENTIFIER = "ProtocolIdentifier" ;
+    /**
+     * The ProtocolIdentifier QName.
+     */
+    public QName WSCOOR_ELEMENT_PROTOCOL_IDENTIFIER_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_PROTOCOL_IDENTIFIER, WSCOOR_PREFIX) ;
+    
+    /**
+     * The ParticipantProtocolService element.
+     */
+    public String WSCOOR_ELEMENT_PARTICIPANT_PROTOCOL_SERVICE = "ParticipantProtocolService" ;
+    /**
+     * The ParticipantProtocolService QName.
+     */
+    public QName WSCOOR_ELEMENT_PARTICIPANT_PROTOCOL_SERVICE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_PARTICIPANT_PROTOCOL_SERVICE, WSCOOR_PREFIX) ;
+    
+    /**
+     * The Register element.
+     */
+    public String WSCOOR_ELEMENT_REGISTER = "Register" ;
+    /**
+     * The Register QName.
+     */
+    public QName WSCOOR_ELEMENT_REGISTER_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_REGISTER, WSCOOR_PREFIX) ;
+    /**
+     * The Register Action.
+     */
+    public String WSCOOR_ACTION_REGISTER = WSCOOR_NAMESPACE + "/" + WSCOOR_ELEMENT_REGISTER ;
+    
+    /**
+     * The CoordinatorProtocolService element.
+     */
+    public String WSCOOR_ELEMENT_COORDINATOR_PROTOCOL_SERVICE = "CoordinatorProtocolService" ;
+    /**
+     * The CoordinatorProtocolService QName.
+     */
+    public QName WSCOOR_ELEMENT_COORDINATOR_PROTOCOL_SERVICE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_COORDINATOR_PROTOCOL_SERVICE, WSCOOR_PREFIX) ;
+    
+    /**
+     * The RegisterResponse element.
+     */
+    public String WSCOOR_ELEMENT_REGISTER_RESPONSE = "RegisterResponse" ;
+    /**
+     * The RegisterResponse QName.
+     */
+    public QName WSCOOR_ELEMENT_REGISTER_RESPONSE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ELEMENT_REGISTER_RESPONSE, WSCOOR_PREFIX) ;
+    /**
+     * The Register Action.
+     */
+    public String WSCOOR_ACTION_REGISTER_RESPONSE = WSCOOR_NAMESPACE + "/" + WSCOOR_ELEMENT_REGISTER_RESPONSE ;
+    
+    /**
+     * The Fault Action.
+     */
+    public String WSCOOR_ACTION_FAULT = WSCOOR_NAMESPACE + "/fault" ;
+    /**
+     * The AlreadyRegistered error code.
+     */
+    public String WSCOOR_ERROR_CODE_ALREADY_REGISTERED = "AlreadyRegistered" ;
+    /**
+     * The AlreadyRegistered error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_ALREADY_REGISTERED, WSCOOR_PREFIX) ;
+    /**
+     * The ContextRefused error code.
+     */
+    public String WSCOOR_ERROR_CODE_CONTEXT_REFUSED = "ContextRefused" ;
+    /**
+     * The ContextRefused error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_CONTEXT_REFUSED_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_CONTEXT_REFUSED, WSCOOR_PREFIX) ;
+    /**
+     * The InvalidParameters error code.
+     */
+    public String WSCOOR_ERROR_CODE_INVALID_PARAMETERS = "InvalidParameters" ;
+    /**
+     * The InvalidParameters error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_INVALID_PARAMETERS, WSCOOR_PREFIX) ;
+    /**
+     * The InvalidProtocol error code.
+     */
+    public String WSCOOR_ERROR_CODE_INVALID_PROTOCOL = "InvalidProtocol" ;
+    /**
+     * The InvalidProtocol error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_INVALID_PROTOCOL, WSCOOR_PREFIX) ;
+    /**
+     * The InvalidState error code.
+     */
+    public String WSCOOR_ERROR_CODE_INVALID_STATE = "InvalidState" ;
+    /**
+     * The InvalidState error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_INVALID_STATE_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_INVALID_STATE, WSCOOR_PREFIX) ;
+    /**
+     * The NoActivity error code.
+     */
+    public String WSCOOR_ERROR_CODE_NO_ACTIVITY = "NoActivity" ;
+    /**
+     * The NoActivity error code QName.
+     */
+    public QName WSCOOR_ERROR_CODE_NO_ACTIVITY_QNAME = new QName(WSCOOR_NAMESPACE, WSCOOR_ERROR_CODE_NO_ACTIVITY, WSCOOR_PREFIX) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/ActivationCoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,98 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag.  All rights reserved. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor.client;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.*;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import java.io.IOException;
+
+/**
+ * The Client side of the Activation Coordinator.
+ * @author kevin
+ */
+public class ActivationCoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final ActivationCoordinatorClientWS CLIENT = new ActivationCoordinatorClientWS() ;
+
+    /**
+     * Construct the activation coordinator client.
+     */
+    private ActivationCoordinatorClientWS()
+    {
+    }
+    
+    /**
+     * Send a create coordination request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param coordinationType The type of the coordination.
+     * @param expires The expiry interval of the context.
+     * @param currentContext The current coordination context.
+     * @throws SoapFault For any errors.
+     * @throws IOException for any transport errors.
+     */
+    public CreateCoordinationContextResponseType
+    sendCreateCoordination(final AddressingProperties addressingProperties,
+        final String coordinationType, final Expires expires, final CoordinationContext currentContext)
+        throws SoapFault, IOException
+    {
+        final CreateCoordinationContextType request = new CreateCoordinationContextType() ;
+        request.setCoordinationType(coordinationType) ;
+        request.setExpires(expires) ;
+        if (currentContext != null) {
+            // structurally a CreateCoordinationContextType.CurrentContext and a CoordinationContext are the same i.e.
+            // they are a CoordinationContextType extended with an Any list. but the schema does not use one to define
+            // the other so, until we can generate them as the same type we have to interconvert here (and elsewhere)
+
+            CreateCoordinationContextType.CurrentContext current = new CreateCoordinationContextType.CurrentContext();
+            current.setCoordinationType(currentContext.getCoordinationType());
+            current.setExpires(currentContext.getExpires());
+            current.setIdentifier(currentContext.getIdentifier());
+            current.setRegistrationService(currentContext.getRegistrationService());
+            current.getAny().addAll(currentContext.getAny());
+            request.setCurrentContext(current);
+        } else {
+            request.setCurrentContext(null) ;
+        }
+
+        // get proxy with required message id and end point address
+        ActivationPortType port = WSCOORClientWS.getActivationPort(addressingProperties, CoordinationConstantsWS.WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT);
+
+        // invoke remote method
+        return port.createCoordinationContextOperation(request);
+    }
+
+    /**
+     * Get the Activation Coordinator client singleton.
+     * @return The Activation Coordinator client singleton.
+     */
+    public static ActivationCoordinatorClientWS getClient()
+    {
+        return CLIENT ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/WSCOORClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/WSCOORClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/client/WSCOORClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,145 @@
+package com.arjuna.webservices.wscoor.client;
+
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import org.jboss.ws.extensions.addressing.jaxws.WSAddressingClientHandler;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.*;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: adinn
+ * Date: Oct 7, 2007
+ * Time: 3:14:28 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class WSCOORClientWS
+{
+    /**
+     *  thread local which maintains a per thread activation service instance
+     */
+    private static ThreadLocal<ActivationService> activationService = new ThreadLocal<ActivationService>();
+
+    /**
+     *  thread local which maintains a per thread activation service instance
+     */
+    private static ThreadLocal<RegistrationService> registrationService = new ThreadLocal<RegistrationService>();
+
+    /**
+     *  builder used to construct addressing info for calls
+     */
+    private static AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+
+    /**
+     * fetch a coordinator activation service unique to the current thread
+     * @return
+     */
+    private static ActivationService getActivationService()
+    {
+        if (activationService.get() == null) {
+            activationService.set(new ActivationService());
+        }
+        return activationService.get();
+    }
+
+    /**
+     * fetch a coordinator registration service unique to the current thread
+     * @return
+     */
+    private static RegistrationService getRegistrationService()
+    {
+        if (registrationService.get() == null) {
+            registrationService.set(new RegistrationService());
+        }
+        return registrationService.get();
+    }
+
+    public static ActivationPortType getActivationPort(AddressingProperties addressingProperties,
+                                                       String action)
+    {
+        // TODO - we need the 2.1 verison of Service so we can specify that we want to use the WS Addressing feature
+        // JBossWs implements it on Service21, a subclass of Service, and our generated service inherots from Service.
+        ActivationService service = getActivationService();
+        // ActivationPortType port = service.getPort(ActivationPortType.class, new AddressingFeature(true, true));
+        // TODO - can we implement this by using a W3CEndpointreference? Yes, if we use the To address in props
+        ActivationPortType port = service.getPort(ActivationPortType.class);
+        BindingProvider bindingProvider = (BindingProvider)port;
+        AttributedURI toUri = addressingProperties.getTo();
+        /*
+         * we don't actually need to configure an instance identifier handler for this port -- it's the only one
+         * on which we do not need to pass implicit context data either outgoing or returning.
+         * But we do have to add the the WSAdressing client handler to get round the fact that we cannot specify the
+         * WS AddressingFeature when we create the service
+         */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new WSAddressingClientHandler());
+		bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+	    // jbossws should do this for us . . .
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, toUri.getURI().toString());
+        try {
+            addressingProperties.setAction(builder.newURI(action));
+        } catch (URISyntaxException use) {
+            // TODO log this error
+        }
+
+        // TODO we should not need to do this?
+        requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, new Boolean(true));
+        requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, action);
+
+        return port;
+    }
+
+    // don't think we ever need this as we get a registration port from the endpoint ref returned by
+    // the activation port request
+    public static RegistrationPortType getRegistrationPort(AddressingProperties addressingProperties,
+                                                           String action)
+    {
+        // TODO - we need the 2.1 verison of Service so we can specify that we want to use the WS Addressing feature
+        // JBossWs implements it on Service21, a subclass of Service, and our generated service inherots from Service.
+        RegistrationService service = getRegistrationService();
+        // RegistrationPortType port = service.getPort(RegistrationPortType.class, new AddressingFeature(true, true));
+        RegistrationPortType port = service.getPort(RegistrationPortType.class);
+        BindingProvider bindingProvider = (BindingProvider)port;
+        AttributedURI toUri = addressingProperties.getTo();
+        /*
+         * we need to install an instance identifier handler for this port so that we impliclty pass and return
+         * context data
+         * we also have to add the the WSAdressing client handler to get round the fact that we cannot specify the
+         * WS AddressingFeature when we create the service
+         */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        customHandlerChain.add(new WSAddressingClientHandler());
+		bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+	    // jbossws should do this for us . . .
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, toUri.toString());
+
+        try {
+            addressingProperties.setAction(builder.newURI(action));
+        } catch (URISyntaxException use) {
+            // TODO log this error
+        }
+
+        // TODO we should not need to do this?
+        requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, new Boolean(true));
+        requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, action);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/ActivationCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor.processors;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType;
+
+/**
+ * The Activation Coordinator processor.
+ * @author kevin
+ */
+public abstract class ActivationCoordinatorProcessorWS
+{
+    /**
+     * The coordinator.
+     */
+    private static ActivationCoordinatorProcessorWS COORDINATOR  ;
+    
+    /**
+     * Get the coordinator.
+     * @return The coordinator.
+     */
+    public static ActivationCoordinatorProcessorWS getCoordinator()
+    {
+        return COORDINATOR ;
+    }
+    
+    /**
+     * Set the coordinator.
+     * @param coordinator The coordinator.
+     * @return The previous coordinator.
+     */
+    public static ActivationCoordinatorProcessorWS setCoordinator(final ActivationCoordinatorProcessorWS coordinator)
+    {
+        final ActivationCoordinatorProcessorWS origCoordinator = COORDINATOR ;
+        COORDINATOR = coordinator ;
+        return origCoordinator ;
+    }
+    
+    /**
+     * Create the coordination context.
+     * @param createCoordinationContext The create coordination context request.
+     * @param addressingContext The addressing context.
+     * @return a response message containing the desired coordinaton context
+     */
+    public abstract CreateCoordinationContextResponseType
+        createCoordinationContext(final CreateCoordinationContextType createCoordinationContext,
+                                  final AddressingProperties addressingProperties) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/processors/RegistrationCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor.processors;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorWSImpl;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Registration Coordinator processor.
+ * @author kevin
+ */
+public abstract class RegistrationCoordinatorProcessorWS
+{
+    /**
+     * The coordinator.
+     */
+    private static RegistrationCoordinatorProcessorWS COORDINATOR ;
+    
+    /**
+     * Get the coordinator.
+     * @return The coordinator.
+     */
+    public static RegistrationCoordinatorProcessorWS getCoordinator()
+    {
+        return COORDINATOR ;
+    }
+    
+    /**
+     * Set the coordinator.
+     * @param coordinator The coordinator.
+     * @return The orig coordinator.
+     */
+    public static RegistrationCoordinatorProcessorWS setCoordinator(final RegistrationCoordinatorProcessorWSImpl coordinator)
+    {
+        final RegistrationCoordinatorProcessorWS origCoordinator = COORDINATOR ;
+        COORDINATOR = coordinator ;
+        return origCoordinator ;
+    }
+
+    /**
+     * Register the participant in the protocol.
+     * @param register The register request.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract RegisterResponseType register(final RegisterType register, final AddressingProperties addressingContext,
+        final ArjunaContextWS arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/ActivationPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/ActivationPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/ActivationPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,51 @@
+package com.arjuna.webservices.wscoor.sei;
+
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessorWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationPortType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextType;
+
+import javax.annotation.Resource;
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.soap.Addressing;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: adinn
+ * Date: Sep 27, 2007
+ * Time: 10:31:43 AM
+ * To change this template use File | Settings | File Templates.
+ */
+ at WebService(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "ActivationPortType",
+        wsdlLocation = "../wsdl/wscoor-activation-binding.wsdl",
+        serviceName = "ActivationService",
+        portName = "ActivationPortType"
+        // endpointInterface = "org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationPortType",
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+// @EndpointConfig(configName = "Standard WSAddressing Endpoint")
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class ActivationPortTypeImpl implements ActivationPortType
+{
+    @Resource private WebServiceContext webServiceCtx;
+
+    @WebResult(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters", name = "CreateCoordinationContextResponseType")
+    @WebMethod(operationName = "CreateCoordinationContextOperation", action = CoordinationConstantsWS.WSCOOR_ACTION_CREATE_COORDINATION_CONTEXT)
+    public org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType createCoordinationContextOperation(
+        @WebParam(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters", name = "CreateCoordinationContext")
+        CreateCoordinationContextType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        return ActivationCoordinatorProcessorWS.getCoordinator().createCoordinationContext(parameters, inboundAddressProperties);
+   }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/RegistrationPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/RegistrationPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/sei/RegistrationPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+package com.arjuna.webservices.wscoor.sei;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationPortType;
+
+// import org.jboss.ws.annotation.EndpointConfig;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+import javax.xml.ws.soap.Addressing;
+import javax.annotation.Resource;
+
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessorWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: adinn
+ * Date: Sep 27, 2007
+ * Time: 1:33:06 PM
+ * To change this template use File | Settings | File Templates.
+ */
+
+ at WebService(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "RegistrationPortType",
+        wsdlLocation = "../wsdl/wscoor-registration-binding.wsdl",
+        serviceName = "RegistrationService",
+        portName = "RegistrationPortType"
+        // endpointInterface = "org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationPortType",
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+// @EndpointConfig(configName = "Standard WSAddressing Endpoint")
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class RegistrationPortTypeImpl implements RegistrationPortType
+{
+    @Resource private WebServiceContext webServiceCtx;
+
+    @WebResult(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters", name = "RegisterResponse")
+    @WebMethod(operationName = "RegisterOperation", action = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register")
+    public org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType registerOperation(
+        @WebParam(targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters", name = "Register")
+        org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterType parameters
+    )
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx) ;
+
+        return RegistrationCoordinatorProcessorWS.getCoordinator().register(parameters, inboundAddressProperties, arjunaContext);
+
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/ActivationCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag.  All rights reserved. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Activation Coordinator service
+ * @author kevin
+ */
+public class ActivationCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/ActivationService";
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSC11) {
+           public void run() {
+               // TODO if we rely upon JaxWS to automatically publish implementation classes it will only
+               // do so under a URL based on service name. which means we cannot define a service using
+               // multiple port bindings because thsi causes a namespace clash
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(CoordinationConstantsWS.ACTIVATION_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/webservices/wscoor/server/RegistrationCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag.  All rights reserved. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wscoor.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Registration Coordinator service
+ * @author kevin
+ */
+public class RegistrationCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/RegistrationService";
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSC11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(CoordinationConstantsWS.REGISTRATION_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinatorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinatorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ActivationCoordinatorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wsc;
+
+import java.io.IOException;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wscoor.client.ActivationCoordinatorClientWS;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.soap.SOAPFaultException;
+import javax.xml.soap.SOAPFault;
+import javax.xml.soap.SOAPException;
+import javax.xml.namespace.QName;
+
+/**
+ * Wrapper around low level Activation Coordinator messaging.
+ * @author kevin
+ */
+public class ActivationCoordinatorWS
+{
+    /**
+     * Create the coordination context.
+     * @param activationCoordinatorURI The URI of the activation coordinator.
+     * @param messageID The messageID to use.
+     * @param coordinationTypeURI The coordination type.
+     * @param expires The expiry time or null.
+     * @param currentContext The currnt context or null.
+     * @return The coordination context.
+     * @throws InvalidCreateParametersException if the create parameters are invalid.
+     * @throws SoapFault for errors during processing.
+     */
+    public static CoordinationContextType createCoordinationContext(final String activationCoordinatorURI,
+        final String messageID, final String coordinationTypeURI, final Long expires,
+        final CoordinationContext currentContext)
+        throws InvalidCreateParametersException, SoapFault
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createRequestContext(activationCoordinatorURI, messageID) ;
+        
+        final Expires expiresValue;
+        if (expires == null) {
+            // expiresValue = null;
+            expiresValue = new Expires();
+            expiresValue.setValue((long)Integer.MAX_VALUE
+            );
+        } else {
+            expiresValue = new Expires();
+            expiresValue.setValue(expires.longValue());
+        }
+
+        try
+        {
+            CreateCoordinationContextResponseType response;
+            ActivationCoordinatorClientWS client = ActivationCoordinatorClientWS.getClient();
+            response = client.sendCreateCoordination(addressingProperties, coordinationTypeURI, expiresValue, currentContext) ;
+            return response.getCoordinationContext();
+        }
+        catch (final IOException ioe)
+        {
+            throw new SoapFault(ioe) ;
+        } catch (SOAPFaultException sfe) {
+            // TODO -- work out which faults we should really throw. in particular do we need to retain SoapFault
+            final SOAPFault soapFault = sfe.getFault() ;
+            final QName subcode = soapFault.getFaultCodeAsQName() ;
+            if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME.equals(subcode))
+            {
+                try {
+                    String reasonText = soapFault.getFaultReasonText(null);
+                    throw new InvalidCreateParametersException(reasonText);
+                } catch (SOAPException se) {
+                    throw new SoapFault(se);
+                }
+            }
+            throw new SoapFault(sfe) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapperWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapperWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryMapperWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,139 @@
+package com.arjuna.wsc;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * The context factory mapper.
+ * @author kevin
+ */
+public class ContextFactoryMapperWS
+{
+    /**
+     * The factory singleton.
+     */
+    private static final ContextFactoryMapperWS FACTORY = new ContextFactoryMapperWS() ;
+
+    /**
+     * The context factory map.
+     */
+    private final Map contextFactoryMap = new HashMap() ;
+    /**
+     * The subordinate context factory mapper.
+     */
+    private ContextFactoryMapperWS subordinateContextFactoryMapper ;
+    /**
+     * The default context factory.
+     */
+    private ContextFactoryWS defaultContextFactory ;
+
+    /**
+     * Get the context factory mapper singleton.
+     * @return The context factory mapper singleton.
+     */
+    public static ContextFactoryMapperWS getFactory()
+    {
+        return FACTORY;
+    }
+
+    /**
+     * Default constructor
+     */
+    protected ContextFactoryMapperWS()
+    {
+    }
+
+    /**
+     * Add a context factory for the specified coordination type.
+     * @param coordinationTypeURI The coordination type.
+     * @param contextFactory The context factory.
+     */
+    public void addContextFactory(final String coordinationTypeURI, final ContextFactoryWS contextFactory)
+    {
+        synchronized(contextFactoryMap)
+        {
+            contextFactoryMap.put(coordinationTypeURI, contextFactory) ;
+        }
+        contextFactory.install(coordinationTypeURI) ;
+    }
+
+    /**
+     * Get the context factory for the specified coordination type.
+     * @param coordinationTypeURI The coordination type.
+     * @return The context factory.
+     */
+    public ContextFactoryWS getContextFactory(final String coordinationTypeURI)
+    {
+        final Object localContextFactory ;
+        synchronized(contextFactoryMap)
+        {
+            localContextFactory = contextFactoryMap.get(coordinationTypeURI) ;
+        }
+        if (localContextFactory != null)
+        {
+            return (ContextFactoryWS)localContextFactory ;
+        }
+        if (subordinateContextFactoryMapper != null)
+        {
+            final ContextFactoryWS subordinateContextFactory = subordinateContextFactoryMapper.getContextFactory(coordinationTypeURI) ;
+            if (subordinateContextFactory != null)
+            {
+                return subordinateContextFactory ;
+            }
+        }
+        return defaultContextFactory ;
+    }
+
+    /**
+     * Remove the context factory for the specified coordination type.
+     * @param coordinationTypeURI The coordination type.
+     */
+    public void removeContextFactory(final String coordinationTypeURI)
+    {
+        final Object localContextFactory ;
+        synchronized(contextFactoryMap)
+        {
+            localContextFactory = contextFactoryMap.remove(coordinationTypeURI) ;
+        }
+        if (localContextFactory != null)
+        {
+            ((ContextFactoryWS)localContextFactory).uninstall(coordinationTypeURI) ;
+        }
+    }
+
+    /**
+     * Get the subordinate coordination factory mapper.
+     * @return The subordinate coordination factory mapper.
+     */
+    public ContextFactoryMapperWS getSubordinateContextFactoryMapper()
+    {
+        return subordinateContextFactoryMapper ;
+    }
+
+    /**
+     * Set a subordinate coordination factory mapper.
+     * @param subordinateContextFactoryMapper The subordinate coordination factory mapper.
+     */
+    public void setSubordinateContextFactoryMapper(final ContextFactoryMapperWS subordinateContextFactoryMapper)
+    {
+        this.subordinateContextFactoryMapper = subordinateContextFactoryMapper ;
+    }
+
+    /**
+     * Get the default coordination factory.
+     * @return The default coordination factory.
+     */
+    public ContextFactoryWS getDefaultContextFactory()
+    {
+        return defaultContextFactory ;
+    }
+
+    /**
+     * Set the default coordination factory.
+     * @param defaultContextFactory The default coordination factory.
+     */
+    public void setDefaultContextFactory(final ContextFactoryWS defaultContextFactory)
+    {
+        this.defaultContextFactory = defaultContextFactory ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/ContextFactoryWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * ContextFactory.java
+ */
+
+package com.arjuna.wsc;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+public interface ContextFactoryWS
+{
+    /**
+     * Called when a context factory is added to a context factory mapper. This method will be called multiple times
+     * if the context factory is added to multiple context factory mappers or to the same context mapper with different
+     * protocol identifiers.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     */
+	
+    public void install(final String coordinationTypeURI);
+
+    /**
+     * Creates a coordination context.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     * @param expires the expire date/time for the returned context, can be null
+     * @param currentContext the current coordination context, can be null
+     *
+     * @return the created coordination context
+     *
+     * @throws InvalidCreateParametersException if a parameter passed is invalid
+     *         this activity identifier
+     */
+	
+    public CoordinationContext create(final String coordinationTypeURI,
+            final Long expires, final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException;
+
+    /**
+     * Called when a context factory is removed from a context factory mapper. This method will be called multiple
+     * times if the context factory is removed from multiple context factory mappers or from the same context factory
+     * mapper with different coordination type uris.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     */
+	
+    public void uninstall(final String coordinationTypeURI);
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapperWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapperWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarMapperWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,83 @@
+package com.arjuna.wsc;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * The registrar mapper.
+ * @author kevin
+ */
+public class RegistrarMapperWS
+{
+    /**
+     * The factory singleton.
+     */
+    private static final RegistrarMapperWS FACTORY = new RegistrarMapperWS() ;
+
+    /**
+     * The registrar map.
+     */
+    private final Map registrarMap = new HashMap() ;
+
+    /**
+     * Get the registrar mapper singleton.
+     * @return The registrar mapper singleton.
+     */
+    public static RegistrarMapperWS getFactory()
+    {
+        return FACTORY;
+    }
+
+    /**
+     * Default constructor
+     */
+    protected RegistrarMapperWS()
+    {
+    }
+
+    /**
+     * Add a registrar for the specified protocol identifier.
+     * @param protocolIdentifier The protocol identifier.
+     * @param registrar The registrar.
+     */
+    public void addRegistrar(final String protocolIdentifier, final RegistrarWS registrar)
+    {
+        synchronized(registrarMap)
+        {
+            registrarMap.put(protocolIdentifier, registrar) ;
+        }
+        registrar.install(protocolIdentifier) ;
+    }
+
+    /**
+     * Get the registrar for the specified protocol identifier.
+     * @param protocolIdentifier The protocol identifier.
+     * @return The registrar.
+     */
+    public RegistrarWS getRegistrar(final String protocolIdentifier)
+    {
+        final Object localRegistrar ;
+        synchronized(registrarMap)
+        {
+            localRegistrar = registrarMap.get(protocolIdentifier) ;
+        }
+        return (RegistrarWS)localRegistrar ;
+    }
+
+    /**
+     * Remove the registrar for the specified protocol identifier.
+     * @param protocolIdentifier The protocol identifier.
+     */
+    public void removeRegistrar(final String protocolIdentifier)
+    {
+        final Object localRegistrar ;
+        synchronized(registrarMap)
+        {
+            localRegistrar = registrarMap.remove(protocolIdentifier) ;
+        }
+        if (localRegistrar != null)
+        {
+            ((Registrar)localRegistrar).uninstall(protocolIdentifier) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrarWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,46 @@
+package com.arjuna.wsc;
+
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+public interface RegistrarWS
+{
+    /**
+     * Called when a registrar is added to a register mapper. This method will be called multiple times if the
+     * registrar is added to multiple register mappers or to the same register mapper with different protocol
+     * identifiers.
+     *
+     * @param protocolIdentifier the protocol identifier
+     */
+    public void install(final String protocolIdentifier);
+
+    /**
+     * Registers the interest of participant in a particular protocol.
+     *
+     * @param participantProtocolService the port reference of the participant protocol service
+     * @param protocolIdentifier the protocol identifier
+     * @param instanceIdentifier the instance identifier, this may be null
+     *
+     * @return the port reference of the coordinator protocol service
+     *
+     * @throws com.arjuna.wsc.AlreadyRegisteredException if the participant is already registered for this coordination protocol under
+     *         this activity identifier
+     * @throws com.arjuna.wsc.InvalidProtocolException if the coordination protocol is not supported
+     * @throws com.arjuna.wsc.InvalidStateException if the state of the coordinator no longer allows registration for this
+     *         coordination protocol
+     * @throws com.arjuna.wsc.NoActivityException if the actvity does not exist
+     */
+    public W3CEndpointReference register(final W3CEndpointReference participantProtocolService,
+        final String protocolIdentifier, final InstanceIdentifierWS instanceIdentifier)
+        throws AlreadyRegisteredException, InvalidProtocolException, InvalidStateException, NoActivityException;
+
+    /**
+     * Called when a registrar is removed from a register mapper. This method will be called multiple times if the
+     * registrar is removed from multiple register mappers or from the same register mapper with different protocol
+     * identifiers.
+     *
+     * @param protocolIdentifier the protocol identifier
+     */
+    public void uninstall(final String protocolIdentifier);
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinatorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinatorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/RegistrationCoordinatorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,82 @@
+package com.arjuna.wsc;
+
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.webservices.SoapFault;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.soap.SOAPFaultException;
+import javax.xml.soap.SOAPFault;
+import javax.xml.soap.SOAPException;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationPortType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterType;
+
+/**
+ * Wrapper around low level Registration Coordinator messaging.
+ * @author kevin
+ */
+public class RegistrationCoordinatorWS
+{
+    /**
+     * Register the participant in the protocol.
+     * @param coordinationContext The current coordination context
+     * @param messageID The messageID to use.
+     * @param participantProtocolService The participant protocol service.
+     * @param protocolIdentifier The protocol identifier.
+     * @return The endpoint reference of the coordinator protocol service.
+     * @throws com.arjuna.wsc.AlreadyRegisteredException If the participant is already registered.
+     * @throws com.arjuna.wsc.InvalidProtocolException If the protocol is unsupported.
+     * @throws com.arjuna.wsc.InvalidStateException If the state is invalid
+     * @throws com.arjuna.wsc.NoActivityException If there is to activity context active.
+     * @throws com.arjuna.webservices.SoapFault for errors during processing.
+     */
+    public static W3CEndpointReference register(final CoordinationContextType coordinationContext,
+        final String messageID, final W3CEndpointReference participantProtocolService,
+        final String protocolIdentifier)
+        throws AlreadyRegisteredException, InvalidProtocolException,
+            InvalidStateException, NoActivityException, SoapFault
+    {
+        final W3CEndpointReference endpointReference = coordinationContext.getRegistrationService() ;
+
+        try
+        {
+            RegisterType registerType = new RegisterType();
+            RegisterResponseType response;
+
+            registerType.setProtocolIdentifier(protocolIdentifier);
+            registerType.setParticipantProtocolService(participantProtocolService);
+            // TODO - set the message id for the call in the addressing properties attached to the port
+            RegistrationPortType port = endpointReference.getPort(RegistrationPortType.class);
+            response = port.registerOperation(registerType);
+            return response.getCoordinatorProtocolService();
+        } catch (SOAPFaultException sfe) {
+            try {
+                // TODO -- work out which faults we should really throw. in particular do we need to retain SoapFault
+                final SOAPFault soapFault = sfe.getFault() ;
+                final QName subcode = soapFault.getFaultCodeAsQName() ;
+                if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME.equals(subcode))
+                {
+                    throw new AlreadyRegisteredException(soapFault.getFaultReasonText(null)) ;
+                }
+                else if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME.equals(subcode))
+                {
+                    throw new InvalidProtocolException(soapFault.getFaultReasonText(null)) ;
+                }
+                else if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME.equals(subcode))
+                {
+                    throw new InvalidStateException(soapFault.getFaultReasonText(null)) ;
+                }
+                else if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_NO_ACTIVITY_QNAME.equals(subcode))
+                {
+                    throw new NoActivityException(soapFault.getFaultReasonText(null)) ;
+                }
+            } catch (SOAPException se) {
+                throw new SoapFault(se);
+            }
+            throw new SoapFault(sfe) ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/ActivationCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wsc.messaging;
+
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessorWS;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.wsc.ContextFactoryWS;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.ContextFactoryMapperWS;
+
+import javax.xml.ws.soap.SOAPFaultException;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.ProtocolException;
+import javax.xml.soap.SOAPFault;
+import javax.xml.soap.SOAPFactory;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.*;
+
+/**
+ * The Activation Coordinator processor.
+ * @author kevin
+ */
+public class ActivationCoordinatorProcessorWSImpl extends ActivationCoordinatorProcessorWS
+{
+    /**
+     * Create the coordination context.
+     * @param createCoordinationContext The create coordination context request.
+     * @param addressingProperties The addressing context.
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorWSWSProcessorImpl_1 [com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_1] - Invalid create coordination context parameters
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_2 [com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_2] - Unexpected exception thrown from create:
+     * @message com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_3 [com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_3] - CreateCoordinationContext called for unknown coordination type: {0}
+     */
+    public CreateCoordinationContextResponseType
+        createCoordinationContext(final CreateCoordinationContextType createCoordinationContext,
+                                  final AddressingProperties addressingProperties)
+    {
+        final ContextFactoryMapperWS contextFactoryMapper = ContextFactoryMapperWS.getFactory() ;
+        try
+        {
+            final String coordinationType = createCoordinationContext.getCoordinationType() ;
+            final ContextFactoryWS contextFactory = contextFactoryMapper.getContextFactory(coordinationType) ;
+            
+            if (contextFactory != null)
+            {
+                final CoordinationContext coordinationContext ;
+                try
+                {
+                    final Expires expiresElement = createCoordinationContext.getExpires() ;
+                    final Long expires = (expiresElement == null ? null : new Long(expiresElement.getValue())) ;
+                    
+                    coordinationContext = contextFactory.create(coordinationType, expires, createCoordinationContext.getCurrentContext()) ;
+                    final CreateCoordinationContextResponseType response = new CreateCoordinationContextResponseType() ;
+                    response.setCoordinationContext(coordinationContext) ;
+                    return response;
+                }
+                catch (final InvalidCreateParametersException invalidCreateParametersException)
+                {
+	                SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME);
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_1") ;
+	                throw new SOAPFaultException(soapFault);
+                }
+                catch (final Throwable th)
+                {
+                    if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_2", th) ;
+                    }
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault() ;
+                    soapFault.addDetail().addTextNode(th.getMessage());
+                    throw new SOAPFaultException(soapFault);
+                }
+            }
+            else
+            {
+                if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_3", new Object[] {coordinationType}) ;
+                }
+
+                SOAPFactory factory = SOAPFactory.newInstance();
+                SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstants.WSCOOR_ERROR_CODE_INVALID_PARAMETERS_QNAME) ;
+                WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.ActivationCoordinatorWSProcessorImpl_1") ;
+                throw new SOAPFaultException(soapFault);
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+            throw new ProtocolException(throwable);
+
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageIdWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageIdWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/MessageIdWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Created on 15-Jan-2005
+ */
+package com.arjuna.wsc.messaging;
+
+import java.rmi.dgc.VMID;
+
+/**
+ * A simple message id generator, used when UID is inaccessible.
+ * @author kevin
+ */
+public class MessageIdWS
+{
+    /**
+     * Prevent instantiation.
+     */
+    private MessageIdWS()
+    {
+    }
+
+    /**
+     * Get the next message identifier.
+     * @return The next message identifier.
+     */
+    public static String getMessageId()
+    {
+        return "urn:" + new VMID().toString() ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/RegistrationCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,139 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wsc.messaging;
+
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSCLogger;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessorWS;
+import com.arjuna.wsc.*;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterType;
+
+import javax.xml.soap.SOAPFactory;
+import javax.xml.soap.SOAPFault;
+import javax.xml.ws.ProtocolException;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.soap.SOAPFaultException;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+
+/**
+ * The Registration Coordinator processor.
+ * @author kevin
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_1 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_1] - Participant already registered
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_2 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_2] - Invalid protocol identifier
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_3 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_3] - Invalid coordination context state
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_4 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_4] - Unknown activity identifier
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_5 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_5] - Unexpected exception thrown from create:
+ * @message com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_6 [com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_6] - Register called for unknown protocol identifier: {0}
+ */
+public class RegistrationCoordinatorProcessorWSImpl extends RegistrationCoordinatorProcessorWS
+{
+    /**
+     * Register the participant in the protocol.
+     * @param register The register request.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public RegisterResponseType register(final RegisterType register, final AddressingProperties addressingContext,
+        final ArjunaContextWS arjunaContext)
+    {
+        final RegistrarMapperWS registrarMapper = RegistrarMapperWS.getFactory() ;
+        try
+        {
+            final String protocolIdentifier = register.getProtocolIdentifier() ;
+            final RegistrarWS registrar = registrarMapper.getRegistrar(protocolIdentifier) ;
+            
+            if (registrar != null)
+            {
+                try
+                {
+                    final W3CEndpointReference participantProtocolService = register.getParticipantProtocolService() ;
+                    final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier();
+                    final W3CEndpointReference coordinationProtocolService =
+                            registrar.register(participantProtocolService, protocolIdentifier, instanceIdentifier) ;
+                    final RegisterResponseType response = new RegisterResponseType() ;
+
+                    response.setCoordinatorProtocolService(coordinationProtocolService);
+                    return response;
+                }
+                catch (final AlreadyRegisteredException alreadyRegisteredException)
+                {
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstantsWS.WSCOOR_ERROR_CODE_ALREADY_REGISTERED_QNAME);
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_1") ;
+                    throw new SOAPFaultException(soapFault);
+                }
+                catch (final InvalidProtocolException invalidProtocolException)
+                {
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME);
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_2") ;
+                    throw new SOAPFaultException(soapFault);
+                }
+                catch (final InvalidStateException InvalidStateException)
+                {
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME);
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_3") ;
+                    throw new SOAPFaultException(soapFault);
+                }
+                catch (final NoActivityException noActivityException)
+                {
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstantsWS.WSCOOR_ERROR_CODE_NO_ACTIVITY_QNAME);
+                    WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_4") ;
+                    throw new SOAPFaultException(soapFault);
+                }
+                catch (final Throwable th)
+                {
+                    if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_5", th) ;
+                    }
+                    SOAPFactory factory = SOAPFactory.newInstance();
+                    SOAPFault soapFault = factory.createFault();
+                    soapFault.addDetail().addTextNode(th.getMessage());
+                    throw new SOAPFaultException(soapFault);
+                }
+            }
+            else
+            {
+                if (WSCLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSCLogger.arjLoggerI18N.debug("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_6", new Object[] {protocolIdentifier}) ;
+                }
+                SOAPFactory factory = SOAPFactory.newInstance();
+                SOAPFault soapFault = factory.createFault(SoapFaultType.FAULT_SENDER.getValue(), CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_PROTOCOL_QNAME);
+                WSCLogger.log_mesg.getString("com.arjuna.wsc.messaging.RegistrationCoordinatorWSProcessorImpl_2") ;
+                throw new SOAPFaultException(soapFault);
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+            throw new ProtocolException(throwable);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/com/arjuna/wsc/messaging/deploy/CoordinationWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wsc.messaging.deploy;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessorWS;
+import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.ActivationCoordinatorProcessorWSImpl;
+import com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorWSImpl;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Initialise the coordination services.
+ * @author kevin
+ */
+public class CoordinationWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSC) {
+           public void run() {
+               ActivationCoordinatorProcessorWS.setCoordinator(new ActivationCoordinatorProcessorWSImpl()) ;
+               RegistrationCoordinatorProcessorWS.setCoordinator(new RegistrationCoordinatorProcessorWSImpl()) ;
+           }
+        };
+        // this is the last WSC callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WSC11);
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,34 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "ActivationPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface ActivationPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     * @return
+     *     returns org.oasis_open.docs.ws_tx.wscoor._2006._06.CreateCoordinationContextResponseType
+     */
+    @WebMethod(operationName = "CreateCoordinationContextOperation", action = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06/CreateCoordinationContext")
+    @WebResult(name = "CreateCoordinationContextResponse", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+    public CreateCoordinationContextResponseType createCoordinationContextOperation(
+        @WebParam(name = "CreateCoordinationContext", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+        CreateCoordinationContextType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ActivationService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "ActivationService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl")
+public class ActivationService
+    extends Service
+{
+
+    private final static URL ACTIVATIONSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wscoor._2006._06.ActivationService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wscoor-activation-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        ACTIVATIONSERVICE_WSDL_LOCATION = url;
+    }
+
+    public ActivationService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public ActivationService() {
+        super(ACTIVATIONSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "ActivationService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ActivationPortType
+     */
+    @WebEndpoint(name = "ActivationPortType")
+    public ActivationPortType getActivationPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "ActivationPortType"), ActivationPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContext.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,75 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "CoordinationContext")
+public class CoordinationContext
+    extends CoordinationContextType
+{
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CoordinationContextType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,254 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+
+/**
+ * <p>Java class for CoordinationContextType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CoordinationContextType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Identifier">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}Expires" minOccurs="0"/>
+ *         &lt;element name="CoordinationType" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="RegistrationService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CoordinationContextType", propOrder = {
+    "identifier",
+    "expires",
+    "coordinationType",
+    "registrationService"
+})
+public class CoordinationContextType {
+
+    @XmlElement(name = "Identifier", required = true)
+    protected CoordinationContextType.Identifier identifier;
+    @XmlElement(name = "Expires")
+    protected Expires expires;
+    @XmlElement(name = "CoordinationType", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String coordinationType;
+    @XmlElement(name = "RegistrationService", required = true)
+    protected W3CEndpointReference registrationService;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the identifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CoordinationContextType.Identifier }
+     *     
+     */
+    public CoordinationContextType.Identifier getIdentifier() {
+        return identifier;
+    }
+
+    /**
+     * Sets the value of the identifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CoordinationContextType.Identifier }
+     *     
+     */
+    public void setIdentifier(CoordinationContextType.Identifier value) {
+        this.identifier = value;
+    }
+
+    /**
+     * Gets the value of the expires property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Expires }
+     *     
+     */
+    public Expires getExpires() {
+        return expires;
+    }
+
+    /**
+     * Sets the value of the expires property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Expires }
+     *     
+     */
+    public void setExpires(Expires value) {
+        this.expires = value;
+    }
+
+    /**
+     * Gets the value of the coordinationType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCoordinationType() {
+        return coordinationType;
+    }
+
+    /**
+     * Sets the value of the coordinationType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCoordinationType(String value) {
+        this.coordinationType = value;
+    }
+
+    /**
+     * Gets the value of the registrationService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getRegistrationService() {
+        return registrationService;
+    }
+
+    /**
+     * Sets the value of the registrationService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setRegistrationService(W3CEndpointReference value) {
+        this.registrationService = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class Identifier {
+
+        @XmlValue
+        @XmlSchemaType(name = "anyURI")
+        protected String value;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new attribute
+         * by updating the map directly. Because of this design, there's no setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextResponseType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for CreateCoordinationContextResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CreateCoordinationContextResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContext"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CreateCoordinationContextResponseType", propOrder = {
+    "coordinationContext",
+    "any"
+})
+public class CreateCoordinationContextResponseType {
+
+    @XmlElement(name = "CoordinationContext", required = true)
+    protected CoordinationContext coordinationContext;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the coordinationContext property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CoordinationContext }
+     *     
+     */
+    public CoordinationContext getCoordinationContext() {
+        return coordinationContext;
+    }
+
+    /**
+     * Sets the value of the coordinationContext property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CoordinationContext }
+     *     
+     */
+    public void setCoordinationContext(CoordinationContext value) {
+        this.coordinationContext = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/CreateCoordinationContextType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,255 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for CreateCoordinationContextType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CreateCoordinationContextType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element ref="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}Expires" minOccurs="0"/>
+ *         &lt;element name="CurrentContext" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+ *                 &lt;sequence>
+ *                   &lt;any/>
+ *                 &lt;/sequence>
+ *               &lt;/extension>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="CoordinationType" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "CreateCoordinationContextType", propOrder = {
+    "expires",
+    "currentContext",
+    "coordinationType",
+    "any"
+})
+public class CreateCoordinationContextType {
+
+    @XmlElement(name = "Expires")
+    protected Expires expires;
+    @XmlElement(name = "CurrentContext")
+    protected CreateCoordinationContextType.CurrentContext currentContext;
+    @XmlElement(name = "CoordinationType", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String coordinationType;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the expires property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Expires }
+     *     
+     */
+    public Expires getExpires() {
+        return expires;
+    }
+
+    /**
+     * Sets the value of the expires property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Expires }
+     *     
+     */
+    public void setExpires(Expires value) {
+        this.expires = value;
+    }
+
+    /**
+     * Gets the value of the currentContext property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CreateCoordinationContextType.CurrentContext }
+     *     
+     */
+    public CreateCoordinationContextType.CurrentContext getCurrentContext() {
+        return currentContext;
+    }
+
+    /**
+     * Sets the value of the currentContext property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CreateCoordinationContextType.CurrentContext }
+     *     
+     */
+    public void setCurrentContext(CreateCoordinationContextType.CurrentContext value) {
+        this.currentContext = value;
+    }
+
+    /**
+     * Gets the value of the coordinationType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCoordinationType() {
+        return coordinationType;
+    }
+
+    /**
+     * Sets the value of the coordinationType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCoordinationType(String value) {
+        this.coordinationType = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{http://docs.oasis-open.org/ws-tx/wscoor/2006/06}CoordinationContextType">
+     *       &lt;sequence>
+     *         &lt;any/>
+     *       &lt;/sequence>
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "any"
+    })
+    public static class CurrentContext
+        extends CoordinationContextType
+    {
+
+        @XmlAnyElement(lax = true)
+        protected List<Object> any;
+
+        /**
+         * Gets the value of the any property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the any property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getAny().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link Object }
+         * {@link Element }
+         * 
+         * 
+         */
+        public List<Object> getAny() {
+            if (any == null) {
+                any = new ArrayList<Object>();
+            }
+            return this.any;
+        }
+
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/Expires.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,79 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>unsignedInt">
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "value"
+})
+ at XmlRootElement(name = "Expires")
+public class Expires {
+
+    @XmlValue
+    @XmlSchemaType(name = "unsignedInt")
+    protected long value;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public long getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(long value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,147 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wscoor._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Register_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "Register");
+    private final static QName _RegisterResponse_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegisterResponse");
+    private final static QName _CreateCoordinationContext_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "CreateCoordinationContext");
+    private final static QName _CreateCoordinationContextResponse_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "CreateCoordinationContextResponse");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wscoor._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContextType.Identifier }
+     * 
+     */
+    public CoordinationContextType.Identifier createCoordinationContextTypeIdentifier() {
+        return new CoordinationContextType.Identifier();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextType }
+     * 
+     */
+    public CreateCoordinationContextType createCreateCoordinationContextType() {
+        return new CreateCoordinationContextType();
+    }
+
+    /**
+     * Create an instance of {@link Expires }
+     * 
+     */
+    public Expires createExpires() {
+        return new Expires();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextResponseType }
+     * 
+     */
+    public CreateCoordinationContextResponseType createCreateCoordinationContextResponseType() {
+        return new CreateCoordinationContextResponseType();
+    }
+
+    /**
+     * Create an instance of {@link CreateCoordinationContextType.CurrentContext }
+     * 
+     */
+    public CreateCoordinationContextType.CurrentContext createCreateCoordinationContextTypeCurrentContext() {
+        return new CreateCoordinationContextType.CurrentContext();
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContext }
+     * 
+     */
+    public CoordinationContext createCoordinationContext() {
+        return new CoordinationContext();
+    }
+
+    /**
+     * Create an instance of {@link RegisterType }
+     * 
+     */
+    public RegisterType createRegisterType() {
+        return new RegisterType();
+    }
+
+    /**
+     * Create an instance of {@link CoordinationContextType }
+     * 
+     */
+    public CoordinationContextType createCoordinationContextType() {
+        return new CoordinationContextType();
+    }
+
+    /**
+     * Create an instance of {@link RegisterResponseType }
+     * 
+     */
+    public RegisterResponseType createRegisterResponseType() {
+        return new RegisterResponseType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "Register")
+    public JAXBElement<RegisterType> createRegister(RegisterType value) {
+        return new JAXBElement<RegisterType>(_Register_QNAME, RegisterType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link RegisterResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "RegisterResponse")
+    public JAXBElement<RegisterResponseType> createRegisterResponse(RegisterResponseType value) {
+        return new JAXBElement<RegisterResponseType>(_RegisterResponse_QNAME, RegisterResponseType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link CreateCoordinationContextType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "CreateCoordinationContext")
+    public JAXBElement<CreateCoordinationContextType> createCreateCoordinationContext(CreateCoordinationContextType value) {
+        return new JAXBElement<CreateCoordinationContextType>(_CreateCoordinationContext_QNAME, CreateCoordinationContextType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link CreateCoordinationContextResponseType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", name = "CreateCoordinationContextResponse")
+    public JAXBElement<CreateCoordinationContextResponseType> createCreateCoordinationContextResponse(CreateCoordinationContextResponseType value) {
+        return new JAXBElement<CreateCoordinationContextResponseType>(_CreateCoordinationContextResponse_QNAME, CreateCoordinationContextResponseType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterResponseType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,125 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for RegisterResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="CoordinatorProtocolService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterResponseType", propOrder = {
+    "coordinatorProtocolService",
+    "any"
+})
+public class RegisterResponseType {
+
+    @XmlElement(name = "CoordinatorProtocolService", required = true)
+    protected W3CEndpointReference coordinatorProtocolService;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the coordinatorProtocolService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getCoordinatorProtocolService() {
+        return coordinatorProtocolService;
+    }
+
+    /**
+     * Sets the value of the coordinatorProtocolService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setCoordinatorProtocolService(W3CEndpointReference value) {
+        this.coordinatorProtocolService = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegisterType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,155 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for RegisterType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RegisterType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ProtocolIdentifier" type="{http://www.w3.org/2001/XMLSchema}anyURI"/>
+ *         &lt;element name="ParticipantProtocolService" type="{http://www.w3.org/2005/08/addressing}EndpointReferenceType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "RegisterType", propOrder = {
+    "protocolIdentifier",
+    "participantProtocolService",
+    "any"
+})
+public class RegisterType {
+
+    @XmlElement(name = "ProtocolIdentifier", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String protocolIdentifier;
+    @XmlElement(name = "ParticipantProtocolService", required = true)
+    protected W3CEndpointReference participantProtocolService;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the protocolIdentifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getProtocolIdentifier() {
+        return protocolIdentifier;
+    }
+
+    /**
+     * Sets the value of the protocolIdentifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setProtocolIdentifier(String value) {
+        this.protocolIdentifier = value;
+    }
+
+    /**
+     * Gets the value of the participantProtocolService property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public W3CEndpointReference getParticipantProtocolService() {
+        return participantProtocolService;
+    }
+
+    /**
+     * Sets the value of the participantProtocolService property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link W3CEndpointReference }
+     *     
+     */
+    public void setParticipantProtocolService(W3CEndpointReference value) {
+        this.participantProtocolService = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,34 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "RegistrationPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface RegistrationPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     * @return
+     *     returns org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType
+     */
+    @WebMethod(operationName = "RegisterOperation", action = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06/Register")
+    @WebResult(name = "RegisterResponse", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+    public RegisterResponseType registerOperation(
+        @WebParam(name = "Register", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", partName = "parameters")
+        RegisterType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/RegistrationService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "RegistrationService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl")
+public class RegistrationService
+    extends Service
+{
+
+    private final static URL REGISTRATIONSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wscoor._2006._06.RegistrationService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wscoor-registration-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        REGISTRATIONSERVICE_WSDL_LOCATION = url;
+    }
+
+    public RegistrationService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public RegistrationService() {
+        super(REGISTRATIONSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegistrationService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns RegistrationPortType
+     */
+    @WebEndpoint(name = "RegistrationPortType")
+    public RegistrationPortType getRegistrationPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wscoor/2006/06", "RegistrationPortType"), RegistrationPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-C/dev/src/org/oasis_open/docs/ws_tx/wscoor/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wscoor/2006/06", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.oasis_open.docs.ws_tx.wscoor._2006._06;

Modified: labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -66,9 +66,13 @@
 
     <property name="jta.lib.jars" value="jbossjta.jar"/>
     <property name="jta.ext.jars" value="jbossts-common.jar commons-logging.jar"/>
-    <property name="xts.ext.jars" value="stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+    <property name="xts.ext.jars" value="stax-api-1.0.jar wstx-asl-2.0.3.jar wsbrew.jar"/>
     <property name="xts.ext.compile.jars" value="servlet.jar"/>
 
+    <!-- we need gf jars from the gf lib dir -->
+    <property name="gf.dir" value="${env.GF_HOME}/lib"/>
+    <property name="gf.lib.jars" value="javaee.jar"/>
+
     <property name="tests.libs"              value="junit.jar"/>
     <property name="ws-c.libs"               value="ws-c.jar"/>
 
@@ -83,6 +87,8 @@
         <fileset dir="${com.arjuna.jta.install.ext}" includes="${jta.ext.jars}"/>
         <fileset dir="${com.arjuna.xts.ext}" includes="${xts.ext.jars} ${xts.ext.compile.jars}"/>
     	<fileset dir="${com.arjuna.jta.install.lib}" includes="${jta.lib.jars}"/>
+	<!-- add extra gf jars to path -->
+        <fileset dir="${gf.dir}" includes="${gf.lib.jars}"/>
     </path>
 
     <path id="tests.lib.path">
@@ -159,8 +165,28 @@
     </target>
 
     <target name="dev-jars" depends="dev-compile, dev-resourcebundle" >
+      <!--
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsat-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsat.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsba-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsba.wsdl"/>
+	<copy file="${dev.dd.dir}/wsarjtx/wsdl/wsarjtx.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsarjtx.wsdl"/>
+      -->
+
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsat-participant-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsat-participant-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsat-coordinator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsat-coordinator-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsat-completion-initiator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsat-completion-initiator-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsat-completion-coordinator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsat-completion-coordinator-binding.wsdl"/>
+
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsba-coordinator-completion-participant-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsba-coordinator-completion-participant-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsba-participant-completion-coordinator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsba-participant-completion-coordinator-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wscoor1.1/wsdl/wsba-participant-completion-participant-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsba-participant-completion-participant-binding.wsdl"/>
+
+	<copy file="${dev.dd.dir}/wsarjtx/wsdl/wsarjtx.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsarjtx.wsdl"/>
+	<copy file="${dev.dd.dir}/wsarjtx/wsdl/wsarjtx-termination-coordinator-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsarjtx-termination-coordinator-binding.wsdl"/>
+	<copy file="${dev.dd.dir}/wsarjtx/wsdl/wsarjtx-termination-participant-binding.wsdl" tofile="${build.dev.dd.dir}/wsdl/wsarjtx-termination-participant-binding.wsdl"/>
         <jar jarfile="${build.dev.lib.dir}/ws-t.jar">
-            <fileset dir="${build.dev.classes.dir}"/>
+            <fileset dir="${build.dev.classes.dir}" excludes="com/arjuna/webservices/wsat/sei/* com/arjuna/webservices/wsba/sei/* com/arjuna/webservices/wsarjtx/sei/* handlers.xml"/>
+            <fileset dir="${build.dev.dd.dir}" includes="wsdl/**"/>
             <manifest>
                 <attribute name="Class-Path" value="${ws-c.libs}"/>
             </manifest>
@@ -174,11 +200,30 @@
                 <filter token="port" value="${port}"/>
             </filterset>
         </copy>
+        <copy file="${dev.dd.dir}/ws-t11_web-app.xml" tofile="${build.dev.dd.dir}/web-app11.xml">
+            <filterset>
+                <filter token="hostname" value="${hostname}"/>
+                <filter token="port" value="${port}"/>
+            </filterset>
+        </copy>
+        <copy file="${dev.dd.dir}/ws-t_handlers.xml" tofile="${build.dev.classes.dir}/handlers.xml"/>
         <war warfile="${build.dev.webapps.dir}/ws-t.war" webxml="${build.dev.dd.dir}/web-app.xml">
             <manifest>
                 <attribute name="Class-Path" value="ws-t.jar"/>
             </manifest>
         </war>
+        <war warfile="${build.dev.webapps.dir}/ws-t11init.war"  webxml="${build.dev.dd.dir}/web-app11.xml">
+            <manifest>
+                <attribute name="Class-Path" value="ws-c.jar ws-t.jar"/>
+            </manifest>
+        </war>
+        <war warfile="${build.dev.webapps.dir}/ws-t11.war" needxmlfile="false">
+	    <webinf dir="${build.dir}/dev" includes="classes/com/arjuna/webservices/wsat/sei/* classes/com/arjuna/webservices/wsba/sei/* classes/com/arjuna/webservices/wsarjtx/sei/* classes/handlers.xml"/>
+	    <webinf dir="${build.dev.dd.dir}" includes="wsdl/**"/>
+            <manifest>
+                <attribute name="Class-Path" value="WEB-INF/classes ws-c.jar ws-t.jar"/>
+            </manifest>
+        </war>
     </target>
 
     <target name="tests-compile" depends="dev-webapps">

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t11_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t11_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t11_web-app.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,74 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>Arjuna Web Services Transaction 1.1</display-name>
+
+    <description>Arjuna Web Services Transaction 1.1</description>
+
+    <!-- base URL for location of Web Services Transaction 1.1 services -->
+    <context-param>
+        <param-name>BaseURI</param-name>
+	<param-value>http://@hostname@:@port@/ws-t11</param-value>
+    </context-param>
+    <!-- Initialise Arjuna TX 1.1 services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationParticipantWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsarjtx.server.TerminationCoordinatorWSInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-AT 1.1 services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionCoordinatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CompletionInitiatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.CoordinatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsat.server.ParticipantWSInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-BA 1.1 services -->
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionCoordinatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.CoordinatorCompletionParticipantWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionCoordinatorWSInitialisation</listener-class>
+    </listener>
+    <listener>
+        <listener-class>com.arjuna.webservices.wsba.server.ParticipantCompletionParticipantWSInitialisation</listener-class>
+    </listener>
+    
+    <!-- Initialise WS-T  1.1 -->
+    <listener>
+        <listener-class>com.arjuna.wst.messaging.deploy.TransactionWSInitialisation</listener-class>
+    </listener>
+</web-app>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_handlers.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_handlers.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/ws-t_handlers.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2007, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2007,
+  @author JBoss Inc.
+-->
+<handler-chains xmlns="http://java.sun.com/xml/ns/javaee" 
+xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
+    <handler-chain>
+	<handler>
+		<handler-name>Instance Identifier Handler</handler-name>
+		<handler-class>com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS</handler-class>
+	</handler>
+	<handler>
+		<handler-name>WS Addressing Server Handler</handler-name>
+		<handler-class>org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler</handler-class>
+	</handler>
+    </handler-chain>
+</handler-chains>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/build.sh
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/build.sh	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/build.sh	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,29 @@
+#
+#
+#
+
+if [ ! -d tmp ] ; then
+    mkdir tmp
+fi
+
+if [ ! -d tmp/classes ] ; then
+    mkdir tmp/classes
+fi
+
+if [ ! -d tmp/src ] ; then
+    mkdir tmp/src
+fi
+
+# delete old generated versions -- any changes should be made to a copy!
+
+rm -rf tmp/classes/* tmp/src/*
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /wsdl/wsarjtx.wsdl -o tmp/classes -s tmp/src -k wsdl/wsarjtx.wsdl
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /home/adinn/tmp/wsdl/wsarjtx.wsdl -o tmp/classes -s tmp/src -k wsdl/wsarjtx.wsdl
+
+# generate termination participant and coordinator code
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsarjtx-termination-participant-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsarjtx-termination-coordinator-binding.wsdl

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,180 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="soapFaultType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="subCode" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;element name="reason" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "soapFaultType",
+    "subCode",
+    "reason",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(required = true)
+    protected String soapFaultType;
+    @XmlElement(required = true)
+    protected QName subCode;
+    @XmlElement(required = true)
+    protected String reason;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the soapFaultType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSoapFaultType() {
+        return soapFaultType;
+    }
+
+    /**
+     * Sets the value of the soapFaultType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSoapFaultType(String value) {
+        this.soapFaultType = value;
+    }
+
+    /**
+     * Gets the value of the subCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getSubCode() {
+        return subCode;
+    }
+
+    /**
+     * Sets the value of the subCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setSubCode(QName value) {
+        this.subCode = value;
+    }
+
+    /**
+     * Gets the value of the reason property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReason() {
+        return reason;
+    }
+
+    /**
+     * Sets the value of the reason property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReason(String value) {
+        this.reason = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,131 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the com.arjuna.schemas.ws._2005._10.wsarjtx package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Close_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Close");
+    private final static QName _Closed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Closed");
+    private final static QName _Cancel_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancel");
+    private final static QName _Completed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Completed");
+    private final static QName _Faulted_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Faulted");
+    private final static QName _Cancelled_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancelled");
+    private final static QName _Complete_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Complete");
+    private final static QName _Fault_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Fault");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.arjuna.schemas.ws._2005._10.wsarjtx
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Faulted")
+    public JAXBElement<NotificationType> createFaulted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Faulted_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancelled")
+    public JAXBElement<NotificationType> createCancelled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancelled_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Fault")
+    public JAXBElement<ExceptionType> createFault(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fault_QNAME, ExceptionType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationCoordinatorPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "TerminationCoordinatorService", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", wsdlLocation = "/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl")
+public class TerminationCoordinatorService
+    extends Service
+{
+
+    private final static URL TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TerminationCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TerminationCoordinatorService() {
+        super(TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationCoordinatorPortType
+     */
+    @WebEndpoint(name = "TerminationCoordinatorService")
+    public TerminationCoordinatorPortType getTerminationCoordinatorService() {
+        return super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationCoordinatorService"), TerminationCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationParticipantPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelledOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled")
+    @Oneway
+    public void cancelledOperation(
+        @WebParam(name = "Cancelled", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted")
+    @Oneway
+    public void faultedOperation(
+        @WebParam(name = "Faulted", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault")
+    @Oneway
+    public void faultOperation(
+        @WebParam(name = "Fault", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        ExceptionType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "TerminationParticipantService", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", wsdlLocation = "/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl")
+public class TerminationParticipantService
+    extends Service
+{
+
+    private final static URL TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TerminationParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TerminationParticipantService() {
+        super(TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationParticipantPortType
+     */
+    @WebEndpoint(name = "TerminationParticipantService")
+    public TerminationParticipantPortType getTerminationParticipantService() {
+        return super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationParticipantService"), TerminationParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package com.arjuna.schemas.ws._2005._10.wsarjtx;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/classes/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,180 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="soapFaultType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="subCode" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;element name="reason" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "soapFaultType",
+    "subCode",
+    "reason",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(required = true)
+    protected String soapFaultType;
+    @XmlElement(required = true)
+    protected QName subCode;
+    @XmlElement(required = true)
+    protected String reason;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the soapFaultType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSoapFaultType() {
+        return soapFaultType;
+    }
+
+    /**
+     * Sets the value of the soapFaultType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSoapFaultType(String value) {
+        this.soapFaultType = value;
+    }
+
+    /**
+     * Gets the value of the subCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getSubCode() {
+        return subCode;
+    }
+
+    /**
+     * Sets the value of the subCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setSubCode(QName value) {
+        this.subCode = value;
+    }
+
+    /**
+     * Gets the value of the reason property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReason() {
+        return reason;
+    }
+
+    /**
+     * Sets the value of the reason property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReason(String value) {
+        this.reason = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,131 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the com.arjuna.schemas.ws._2005._10.wsarjtx package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Fault_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Fault");
+    private final static QName _Cancel_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancel");
+    private final static QName _Cancelled_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancelled");
+    private final static QName _Complete_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Complete");
+    private final static QName _Close_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Close");
+    private final static QName _Completed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Completed");
+    private final static QName _Closed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Closed");
+    private final static QName _Faulted_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Faulted");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.arjuna.schemas.ws._2005._10.wsarjtx
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Fault")
+    public JAXBElement<ExceptionType> createFault(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fault_QNAME, ExceptionType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancelled")
+    public JAXBElement<NotificationType> createCancelled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancelled_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Faulted")
+    public JAXBElement<NotificationType> createFaulted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Faulted_QNAME, NotificationType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationCoordinatorPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationParticipantPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelledOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled")
+    @Oneway
+    public void cancelledOperation(
+        @WebParam(name = "Cancelled", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted")
+    @Oneway
+    public void faultedOperation(
+        @WebParam(name = "Faulted", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault")
+    @Oneway
+    public void faultOperation(
+        @WebParam(name = "Fault", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        ExceptionType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationSOAPService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "Termination_SOAPService", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", wsdlLocation = "/home/adinn/tmp/wsdl/wsarjtx.wsdl")
+public class TerminationSOAPService
+    extends Service
+{
+
+    private final static URL TERMINATIONSOAPSERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:/home/adinn/tmp/wsdl/wsarjtx.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        TERMINATIONSOAPSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TerminationSOAPService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TerminationSOAPService() {
+        super(TERMINATIONSOAPSERVICE_WSDL_LOCATION, new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Termination_SOAPService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationCoordinatorPortType
+     */
+    @WebEndpoint(name = "TerminationCoordinator_SoapPort")
+    public TerminationCoordinatorPortType getTerminationCoordinatorSoapPort() {
+        return (TerminationCoordinatorPortType)super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationCoordinator_SoapPort"), TerminationCoordinatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationParticipantPortType
+     */
+    @WebEndpoint(name = "TerminationParticipant_SoapPort")
+    public TerminationParticipantPortType getTerminationParticipantSoapPort() {
+        return (TerminationParticipantPortType)super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationParticipant_SoapPort"), TerminationParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/tmp.sav/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package com.arjuna.schemas.ws._2005._10.wsarjtx;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-orig.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-orig.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-orig.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2007 JBoss -->
+<wsdl:definitions name="WSARJTX"
+		  targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+		  xmlns="http://schemas.xmlsoap.org/wsdl/" 
+		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+		  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		  xmlns:wsarjtx="http://schemas.arjuna.com/ws/2005/10/wsarjtx">
+        <wsdl:types>
+	  <schema targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx" 
+		  xmlns="http://www.w3.org/2001/XMLSchema"
+		  elementFormDefault="qualified">
+	    <complexType name="NotificationType">
+		<sequence>
+		    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</sequence>
+		<anyAttribute namespace="##other" processContents="lax"/>
+	    </complexType>
+	    <complexType name="ExceptionType">
+		<sequence>
+		    <element name="soapFaultType" type="string"/>
+		    <element name="subCode" type="QName"/>
+		    <element name="reason" type="string"/>
+		    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</sequence>
+		<anyAttribute namespace="##other" processContents="lax"/>
+	    </complexType>
+	    <!-- Coordinator accepts -->
+	    <element name="Complete" type="wsarjtx:NotificationType"/>
+	    <element name="Close" type="wsarjtx:NotificationType"/>
+	    <element name="Cancel" type="wsarjtx:NotificationType"/>
+	    <!-- Participant accepts -->
+	    <element name="Completed" type="wsarjtx:NotificationType"/>
+	    <element name="Closed" type="wsarjtx:NotificationType"/>
+	    <element name="Cancelled" type="wsarjtx:NotificationType"/>
+	    <element name="Faulted" type="wsarjtx:NotificationType"/>
+	    <element name="Fault" type="wsarjtx:ExceptionType"/>
+	  </schema>
+        </wsdl:types> 
+	<!-- Messages -->
+	<wsdl:message name="CompleteMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Complete"/>
+	</wsdl:message>
+	<wsdl:message name="CloseMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Close"/>
+	</wsdl:message>
+	<wsdl:message name="CancelMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Cancel"/>
+	</wsdl:message>
+	<wsdl:message name="CompletedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Completed"/>
+	</wsdl:message>
+	<wsdl:message name="ClosedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Closed"/>
+	</wsdl:message>
+	<wsdl:message name="CancelledMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Cancelled"/>
+	</wsdl:message>
+	<wsdl:message name="FaultedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Faulted"/>
+	</wsdl:message>
+	<wsdl:message name="FaultMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Fault"/>
+	</wsdl:message>
+	<!-- Asynchronous Messaging PortTypes -->
+	<wsdl:portType name="TerminationCoordinatorPortType">
+		<wsdl:operation name="CompleteOperation">
+			<wsdl:input message="wsarjtx:CompleteMessage" name="Complete"/>
+		</wsdl:operation>
+		<wsdl:operation name="CloseOperation">
+			<wsdl:input message="wsarjtx:CloseMessage" name="Close"/>
+		</wsdl:operation>
+		<wsdl:operation name="CancelOperation">
+			<wsdl:input message="wsarjtx:CancelMessage" name="Cancel"/>
+		</wsdl:operation>
+	</wsdl:portType>
+	<wsdl:portType name="TerminationParticipantPortType">
+		<wsdl:operation name="CompletedOperation">
+			<wsdl:input message="wsarjtx:CompletedMessage" name="Completed"/>
+		</wsdl:operation>
+		<wsdl:operation name="ClosedOperation">
+			<wsdl:input message="wsarjtx:ClosedMessage" name="Closed"/>
+		</wsdl:operation>
+		<wsdl:operation name="CancelledOperation">
+			<wsdl:input message="wsarjtx:CancelledMessage" name="Cancelled"/>
+		</wsdl:operation>
+		<wsdl:operation name="FaultedOperation">
+			<wsdl:input message="wsarjtx:FaultedMessage" name="Faulted"/>
+		</wsdl:operation>
+		<wsdl:operation name="FaultOperation">
+			<wsdl:input message="wsarjtx:FaultMessage" name="Fault"/>
+		</wsdl:operation>
+	</wsdl:portType>
+	<!-- SOAP bindings for ports -->
+	<wsdl:binding name="TerminationCoordinator_SOAPBinding" type="wsarjtx:TerminationCoordinatorPortType">
+	        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+		<wsdl:operation name="CompleteOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete" style="document"/>
+		    <wsdl:input name="Complete">
+		        <soap:body use="literal"/>
+		    </wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="CloseOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close" style="document"/>
+			<wsdl:input name="Close">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="CancelOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel" style="document"/>
+			<wsdl:input name="Cancel">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>
+
+	<wsdl:binding name="TerminationParticipant_SOAPBinding" type="wsarjtx:TerminationParticipantPortType">
+	        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+		<wsdl:operation name="CompletedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed" style="document"/>
+		    <wsdl:input name="Completed">
+		        <soap:body use="literal"/>
+		    </wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="ClosedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed" style="document"/>
+			<wsdl:input name="Closed">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="CancelledOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled" style="document"/>
+			<wsdl:input name="Cancelled">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="FaultedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted" style="document"/>
+			<wsdl:input name="Faulted">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="FaultOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault" style="document"/>
+			<wsdl:input name="Fault">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>
+	<!-- SOAP Service definition -->
+	<wsdl:service name="Termination_SOAPService">
+	    <wsdl:port binding="wsarjtx:TerminationCoordinator_SOAPBinding" name="TerminationCoordinator_SoapPort">
+                <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+	    </wsdl:port>
+
+	    <wsdl:port binding="wsarjtx:TerminationParticipant_SOAPBinding" name="TerminationParticipant_SoapPort">
+                <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+	    </wsdl:port>
+	</wsdl:service>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-coordinator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-coordinator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-coordinator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2007 JBoss -->
+<wsdl:definitions name="WSARJTX-COORDINATOR-BINDING"
+		  targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+		  xmlns="http://schemas.xmlsoap.org/wsdl/" 
+		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+		  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		  xmlns:wsarjtx="http://schemas.arjuna.com/ws/2005/10/wsarjtx">
+    <wsdl:import
+        namespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+        location="wsarjtx.wsdl" />
+
+	<!-- SOAP bindings for termination coordinator port -->
+	<wsdl:binding name="TerminationCoordinator_SOAPBinding" type="wsarjtx:TerminationCoordinatorPortType">
+	        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+		<wsdl:operation name="CompleteOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete" style="document"/>
+		    <wsdl:input name="Complete">
+		        <soap:body use="literal"/>
+		    </wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="CloseOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close" style="document"/>
+			<wsdl:input name="Close">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="CancelOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel" style="document"/>
+			<wsdl:input name="Cancel">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>
+
+	<!-- termination coordinator service definition -->
+	<wsdl:service name="TerminationCoordinatorService">
+	    <wsdl:port binding="wsarjtx:TerminationCoordinator_SOAPBinding" name="TerminationCoordinatorService">
+                <soap:address location="http://localhost:9000/wst11/TerminationCoordinatorService"/>
+	    </wsdl:port>
+	</wsdl:service>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-participant-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-participant-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx-termination-participant-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2007 JBoss -->
+<wsdl:definitions name="WSARJTX"
+		  targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+		  xmlns="http://schemas.xmlsoap.org/wsdl/" 
+		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+		  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		  xmlns:wsarjtx="http://schemas.arjuna.com/ws/2005/10/wsarjtx">
+    <wsdl:import
+        namespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+        location="wsarjtx.wsdl" />
+
+	<!-- SOAP bindings for termination participant port -->
+	<wsdl:binding name="TerminationParticipant_SOAPBinding" type="wsarjtx:TerminationParticipantPortType">
+	        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+		<wsdl:operation name="CompletedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed" style="document"/>
+		    <wsdl:input name="Completed">
+		        <soap:body use="literal"/>
+		    </wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="ClosedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed" style="document"/>
+			<wsdl:input name="Closed">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="CancelledOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled" style="document"/>
+			<wsdl:input name="Cancelled">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="FaultedOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted" style="document"/>
+			<wsdl:input name="Faulted">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+
+		<wsdl:operation name="FaultOperation">
+		    <soap:operation soapAction="http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault" style="document"/>
+			<wsdl:input name="Fault">
+		            <soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>
+	<!-- termination participant service definition -->
+	<wsdl:service name="TerminationParticipantService">
+	    <wsdl:port binding="wsarjtx:TerminationParticipant_SOAPBinding" name="TerminationParticipantService">
+                <soap:address location="http://localhost:9000/wst11/TerminationParticipantService"/>
+	    </wsdl:port>
+	</wsdl:service>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wsarjtx/wsdl/wsarjtx.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2007 JBoss -->
+<wsdl:definitions name="WSARJTX"
+		  targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx"
+		  xmlns="http://schemas.xmlsoap.org/wsdl/" 
+		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+		  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		  xmlns:wsarjtx="http://schemas.arjuna.com/ws/2005/10/wsarjtx">
+        <wsdl:types>
+	  <schema targetNamespace="http://schemas.arjuna.com/ws/2005/10/wsarjtx" 
+		  xmlns="http://www.w3.org/2001/XMLSchema"
+		  elementFormDefault="qualified">
+	    <complexType name="NotificationType">
+		<sequence>
+		    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</sequence>
+		<anyAttribute namespace="##other" processContents="lax"/>
+	    </complexType>
+	    <complexType name="ExceptionType">
+		<sequence>
+		    <element name="soapFaultType" type="string"/>
+		    <element name="subCode" type="QName"/>
+		    <element name="reason" type="string"/>
+		    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</sequence>
+		<anyAttribute namespace="##other" processContents="lax"/>
+	    </complexType>
+	    <!-- Coordinator accepts -->
+	    <element name="Complete" type="wsarjtx:NotificationType"/>
+	    <element name="Close" type="wsarjtx:NotificationType"/>
+	    <element name="Cancel" type="wsarjtx:NotificationType"/>
+	    <!-- Participant accepts -->
+	    <element name="Completed" type="wsarjtx:NotificationType"/>
+	    <element name="Closed" type="wsarjtx:NotificationType"/>
+	    <element name="Cancelled" type="wsarjtx:NotificationType"/>
+	    <element name="Faulted" type="wsarjtx:NotificationType"/>
+	    <element name="Fault" type="wsarjtx:ExceptionType"/>
+	  </schema>
+        </wsdl:types> 
+	<!-- Messages -->
+	<wsdl:message name="CompleteMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Complete"/>
+	</wsdl:message>
+	<wsdl:message name="CloseMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Close"/>
+	</wsdl:message>
+	<wsdl:message name="CancelMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Cancel"/>
+	</wsdl:message>
+	<wsdl:message name="CompletedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Completed"/>
+	</wsdl:message>
+	<wsdl:message name="ClosedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Closed"/>
+	</wsdl:message>
+	<wsdl:message name="CancelledMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Cancelled"/>
+	</wsdl:message>
+	<wsdl:message name="FaultedMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Faulted"/>
+	</wsdl:message>
+	<wsdl:message name="FaultMessage">
+		<wsdl:part name="parameters" element="wsarjtx:Fault"/>
+	</wsdl:message>
+	<!-- Asynchronous Messaging PortTypes -->
+	<wsdl:portType name="TerminationCoordinatorPortType">
+		<wsdl:operation name="CompleteOperation">
+			<wsdl:input message="wsarjtx:CompleteMessage" name="Complete"/>
+		</wsdl:operation>
+		<wsdl:operation name="CloseOperation">
+			<wsdl:input message="wsarjtx:CloseMessage" name="Close"/>
+		</wsdl:operation>
+		<wsdl:operation name="CancelOperation">
+			<wsdl:input message="wsarjtx:CancelMessage" name="Cancel"/>
+		</wsdl:operation>
+	</wsdl:portType>
+	<wsdl:portType name="TerminationParticipantPortType">
+		<wsdl:operation name="CompletedOperation">
+			<wsdl:input message="wsarjtx:CompletedMessage" name="Completed"/>
+		</wsdl:operation>
+		<wsdl:operation name="ClosedOperation">
+			<wsdl:input message="wsarjtx:ClosedMessage" name="Closed"/>
+		</wsdl:operation>
+		<wsdl:operation name="CancelledOperation">
+			<wsdl:input message="wsarjtx:CancelledMessage" name="Cancelled"/>
+		</wsdl:operation>
+		<wsdl:operation name="FaultedOperation">
+			<wsdl:input message="wsarjtx:FaultedMessage" name="Faulted"/>
+		</wsdl:operation>
+		<wsdl:operation name="FaultOperation">
+			<wsdl:input message="wsarjtx:FaultMessage" name="Fault"/>
+		</wsdl:operation>
+	</wsdl:portType>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/build.sh
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/build.sh	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/build.sh	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,48 @@
+#
+#
+#
+
+if [ ! -d tmp ] ; then
+    mkdir tmp
+fi
+
+if [ ! -d tmp/classes ] ; then
+    mkdir tmp/classes
+fi
+
+if [ ! -d tmp/src ] ; then
+    mkdir tmp/src
+fi
+
+# delete old generated versions -- any changes should be made to a copy!
+
+rm -rf tmp/classes/* tmp/src/*
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /wsdl/wsat.wsdl -o tmp/classes -s tmp/src -k wsdl/wsat-binding.wsdl
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /wsdl/wsba.wsdl -o tmp/classes -s tmp/src -k wsdl/wsba-binding.wsdl
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /home/adinn/tmp/wsdl/wsat.wsdl -o tmp/classes -s tmp/src -k wsdl/wsat-binding.wsdl
+
+# $JBOSS_HOME/bin/wsconsume.sh -v -k -w /home/adinn/tmp/wsdl/wsba.wsdl -o tmp/classes -s tmp/src -k wsdl/wsba-binding.wsdl
+
+# first the at services
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsat-completion-coordinator-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsat-completion-initiator-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsat-coordinator-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsat-participant-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsat-participant-binding.wsdl
+
+# now the ba services
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsba-coordinator-completion-coordinator-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsba-coordinator-completion-participant-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsba-participant-completion-coordinator-binding.wsdl
+
+$GF_HOME/bin/wsimport -verbose -keep -wsdllocation /home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl -d tmp/classes -s tmp/src -target 2.0 wsdl/wsba-participant-completion-participant-binding.wsdl
+

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "ATAssertion")
+public class ATAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl")
+public class CompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CompletionCoordinatorService() {
+        super(COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "CompletionCoordinatorPortType")
+    public CompletionCoordinatorPortType getCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionCoordinatorPortType"), CompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionInitiatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionInitiatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CompletionInitiatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl")
+public class CompletionInitiatorService
+    extends Service
+{
+
+    private final static URL COMPLETIONINITIATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COMPLETIONINITIATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CompletionInitiatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CompletionInitiatorService() {
+        super(COMPLETIONINITIATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionInitiatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionInitiatorPortType
+     */
+    @WebEndpoint(name = "CompletionInitiatorPortType")
+    public CompletionInitiatorPortType getCompletionInitiatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionInitiatorPortType"), CompletionInitiatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,62 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PreparedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared")
+    @Oneway
+    public void preparedOperation(
+        @WebParam(name = "Prepared", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ReadOnlyOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly")
+    @Oneway
+    public void readOnlyOperation(
+        @WebParam(name = "ReadOnly", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl")
+public class CoordinatorService
+    extends Service
+{
+
+    private final static URL COORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CoordinatorService() {
+        super(COORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CoordinatorPortType
+     */
+    @WebEndpoint(name = "CoordinatoPortType")
+    public CoordinatorPortType getCoordinatoPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CoordinatoPortType"), CoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for Notification complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Notification">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Notification", propOrder = {
+    "any"
+})
+public class Notification {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,121 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsat._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Aborted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Aborted");
+    private final static QName _Commit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Commit");
+    private final static QName _ReadOnly_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ReadOnly");
+    private final static QName _Committed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Committed");
+    private final static QName _Rollback_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Rollback");
+    private final static QName _Prepare_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepare");
+    private final static QName _Prepared_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepared");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsat._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ATAssertion }
+     * 
+     */
+    public ATAssertion createATAssertion() {
+        return new ATAssertion();
+    }
+
+    /**
+     * Create an instance of {@link Notification }
+     * 
+     */
+    public Notification createNotification() {
+        return new Notification();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Aborted")
+    public JAXBElement<Notification> createAborted(Notification value) {
+        return new JAXBElement<Notification>(_Aborted_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Commit")
+    public JAXBElement<Notification> createCommit(Notification value) {
+        return new JAXBElement<Notification>(_Commit_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "ReadOnly")
+    public JAXBElement<Notification> createReadOnly(Notification value) {
+        return new JAXBElement<Notification>(_ReadOnly_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Committed")
+    public JAXBElement<Notification> createCommitted(Notification value) {
+        return new JAXBElement<Notification>(_Committed_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Rollback")
+    public JAXBElement<Notification> createRollback(Notification value) {
+        return new JAXBElement<Notification>(_Rollback_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepare")
+    public JAXBElement<Notification> createPrepare(Notification value) {
+        return new JAXBElement<Notification>(_Prepare_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepared")
+    public JAXBElement<Notification> createPrepared(Notification value) {
+        return new JAXBElement<Notification>(_Prepared_QNAME, Notification.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "ParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface ParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PrepareOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare")
+    @Oneway
+    public void prepareOperation(
+        @WebParam(name = "Prepare", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "ParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl")
+public class ParticipantService
+    extends Service
+{
+
+    private final static URL PARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        PARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public ParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public ParticipantService() {
+        super(PARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ParticipantPortType
+     */
+    @WebEndpoint(name = "ParticipantPortType")
+    public ParticipantPortType getParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ParticipantPortType"), ParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+package org.oasis_open.docs.ws_tx.wsat._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAAtomicOutcomeAssertion")
+public class BAAtomicOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAMixedOutcomeAssertion")
+public class BAMixedOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl")
+public class BusinessAgreementWithCoordinatorCompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorService() {
+        super(BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType")
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorPortType getBusinessAgreementWithCoordinatorCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType"), BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithCoordinatorCompletionParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl")
+public class BusinessAgreementWithCoordinatorCompletionParticipantService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionParticipantService() {
+        super(BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType")
+    public BusinessAgreementWithCoordinatorCompletionParticipantPortType getBusinessAgreementWithCoordinatorCompletionParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionParticipantPortType"), BusinessAgreementWithCoordinatorCompletionParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithParticipantCompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl")
+public class BusinessAgreementWithParticipantCompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithParticipantCompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithParticipantCompletionCoordinatorService() {
+        super(BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType")
+    public BusinessAgreementWithParticipantCompletionCoordinatorPortType getBusinessAgreementWithParticipantCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionCoordinatorPortType"), BusinessAgreementWithParticipantCompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,102 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithParticipantCompletionParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl")
+public class BusinessAgreementWithParticipantCompletionParticipantService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithParticipantCompletionParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithParticipantCompletionParticipantService() {
+        super(BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionParticipantPortType")
+    public BusinessAgreementWithParticipantCompletionParticipantPortType getBusinessAgreementWithParticipantCompletionParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionParticipantPortType"), BusinessAgreementWithParticipantCompletionParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ExceptionIdentifier" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "exceptionIdentifier",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(name = "ExceptionIdentifier", required = true)
+    protected QName exceptionIdentifier;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the exceptionIdentifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getExceptionIdentifier() {
+        return exceptionIdentifier;
+    }
+
+    /**
+     * Sets the value of the exceptionIdentifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setExceptionIdentifier(QName value) {
+        this.exceptionIdentifier = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,235 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsba._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Canceled_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Canceled");
+    private final static QName _Cancel_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Cancel");
+    private final static QName _Status_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Status");
+    private final static QName _Close_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Close");
+    private final static QName _Exited_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exited");
+    private final static QName _Complete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Complete");
+    private final static QName _Failed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Failed");
+    private final static QName _Compensate_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensate");
+    private final static QName _CannotComplete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "CannotComplete");
+    private final static QName _Completed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Completed");
+    private final static QName _Closed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Closed");
+    private final static QName _Compensated_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensated");
+    private final static QName _Exit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exit");
+    private final static QName _Fail_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Fail");
+    private final static QName _GetStatus_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "GetStatus");
+    private final static QName _NotCompleted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "NotCompleted");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsba._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link BAAtomicOutcomeAssertion }
+     * 
+     */
+    public BAAtomicOutcomeAssertion createBAAtomicOutcomeAssertion() {
+        return new BAAtomicOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link StatusType }
+     * 
+     */
+    public StatusType createStatusType() {
+        return new StatusType();
+    }
+
+    /**
+     * Create an instance of {@link BAMixedOutcomeAssertion }
+     * 
+     */
+    public BAMixedOutcomeAssertion createBAMixedOutcomeAssertion() {
+        return new BAMixedOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Canceled")
+    public JAXBElement<NotificationType> createCanceled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Canceled_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link StatusType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Status")
+    public JAXBElement<StatusType> createStatus(StatusType value) {
+        return new JAXBElement<StatusType>(_Status_QNAME, StatusType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exited")
+    public JAXBElement<NotificationType> createExited(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exited_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Failed")
+    public JAXBElement<NotificationType> createFailed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Failed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensate")
+    public JAXBElement<NotificationType> createCompensate(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensate_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "CannotComplete")
+    public JAXBElement<NotificationType> createCannotComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_CannotComplete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensated")
+    public JAXBElement<NotificationType> createCompensated(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensated_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exit")
+    public JAXBElement<NotificationType> createExit(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exit_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Fail")
+    public JAXBElement<ExceptionType> createFail(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fail_QNAME, ExceptionType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "GetStatus")
+    public JAXBElement<NotificationType> createGetStatus(NotificationType value) {
+        return new JAXBElement<NotificationType>(_GetStatus_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "NotCompleted")
+    public JAXBElement<NotificationType> createNotCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_NotCompleted_QNAME, NotificationType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for StatusType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="StatusType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="State" type="{http://docs.oasis-open.org/ws-tx/wsba/2006/06}StateType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "StatusType", propOrder = {
+    "state",
+    "any"
+})
+public class StatusType {
+
+    @XmlElement(name = "State", required = true)
+    protected QName state;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the state property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getState() {
+        return state;
+    }
+
+    /**
+     * Sets the value of the state property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setState(QName value) {
+        this.state = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.oasis_open.docs.ws_tx.wsba._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/classes/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "ATAssertion")
+public class ATAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionInitiatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionInitiatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,62 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PreparedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared")
+    @Oneway
+    public void preparedOperation(
+        @WebParam(name = "Prepared", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ReadOnlyOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly")
+    @Oneway
+    public void readOnlyOperation(
+        @WebParam(name = "ReadOnly", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for Notification complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Notification">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Notification", propOrder = {
+    "any"
+})
+public class Notification {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,121 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsat._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Prepare_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepare");
+    private final static QName _Aborted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Aborted");
+    private final static QName _Prepared_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepared");
+    private final static QName _Committed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Committed");
+    private final static QName _ReadOnly_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ReadOnly");
+    private final static QName _Commit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Commit");
+    private final static QName _Rollback_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Rollback");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsat._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ATAssertion }
+     * 
+     */
+    public ATAssertion createATAssertion() {
+        return new ATAssertion();
+    }
+
+    /**
+     * Create an instance of {@link Notification }
+     * 
+     */
+    public Notification createNotification() {
+        return new Notification();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepare")
+    public JAXBElement<Notification> createPrepare(Notification value) {
+        return new JAXBElement<Notification>(_Prepare_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Aborted")
+    public JAXBElement<Notification> createAborted(Notification value) {
+        return new JAXBElement<Notification>(_Aborted_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepared")
+    public JAXBElement<Notification> createPrepared(Notification value) {
+        return new JAXBElement<Notification>(_Prepared_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Committed")
+    public JAXBElement<Notification> createCommitted(Notification value) {
+        return new JAXBElement<Notification>(_Committed_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "ReadOnly")
+    public JAXBElement<Notification> createReadOnly(Notification value) {
+        return new JAXBElement<Notification>(_ReadOnly_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Commit")
+    public JAXBElement<Notification> createCommit(Notification value) {
+        return new JAXBElement<Notification>(_Commit_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Rollback")
+    public JAXBElement<Notification> createRollback(Notification value) {
+        return new JAXBElement<Notification>(_Rollback_QNAME, Notification.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "ParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface ParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PrepareOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare")
+    @Oneway
+    public void prepareOperation(
+        @WebParam(name = "Prepare", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/WSATSOAPService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,83 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "WSAT_SOAPService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat.wsdl")
+public class WSATSOAPService
+    extends Service
+{
+
+    private final static URL WSATSOAPSERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:/home/adinn/tmp/wsdl/wsat.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        WSATSOAPSERVICE_WSDL_LOCATION = url;
+    }
+
+    public WSATSOAPService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public WSATSOAPService() {
+        super(WSATSOAPSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "WSAT_SOAPService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "CompletionCoordinatorPortType")
+    public CompletionCoordinatorPortType getCompletionCoordinatorPortType() {
+        return (CompletionCoordinatorPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionCoordinatorPortType"), CompletionCoordinatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionInitiatorPortType
+     */
+    @WebEndpoint(name = "CompletionInitiatorPortType")
+    public CompletionInitiatorPortType getCompletionInitiatorPortType() {
+        return (CompletionInitiatorPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionInitiatorPortType"), CompletionInitiatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CoordinatorPortType
+     */
+    @WebEndpoint(name = "CoordinatoPortType")
+    public CoordinatorPortType getCoordinatoPortType() {
+        return (CoordinatorPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CoordinatoPortType"), CoordinatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ParticipantPortType
+     */
+    @WebEndpoint(name = "ParticipantPortType")
+    public ParticipantPortType getParticipantPortType() {
+        return (ParticipantPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ParticipantPortType"), ParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+package org.oasis_open.docs.ws_tx.wsat._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAAtomicOutcomeAssertion")
+public class BAAtomicOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAMixedOutcomeAssertion")
+public class BAMixedOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,102 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ExceptionIdentifier" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "exceptionIdentifier",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(name = "ExceptionIdentifier", required = true)
+    protected QName exceptionIdentifier;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the exceptionIdentifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getExceptionIdentifier() {
+        return exceptionIdentifier;
+    }
+
+    /**
+     * Sets the value of the exceptionIdentifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setExceptionIdentifier(QName value) {
+        this.exceptionIdentifier = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,235 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsba._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Cancel_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Cancel");
+    private final static QName _Exited_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exited");
+    private final static QName _Status_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Status");
+    private final static QName _Completed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Completed");
+    private final static QName _Close_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Close");
+    private final static QName _NotCompleted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "NotCompleted");
+    private final static QName _GetStatus_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "GetStatus");
+    private final static QName _Exit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exit");
+    private final static QName _Compensate_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensate");
+    private final static QName _Fail_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Fail");
+    private final static QName _Failed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Failed");
+    private final static QName _Complete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Complete");
+    private final static QName _Closed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Closed");
+    private final static QName _CannotComplete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "CannotComplete");
+    private final static QName _Compensated_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensated");
+    private final static QName _Canceled_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Canceled");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsba._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link BAAtomicOutcomeAssertion }
+     * 
+     */
+    public BAAtomicOutcomeAssertion createBAAtomicOutcomeAssertion() {
+        return new BAAtomicOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link BAMixedOutcomeAssertion }
+     * 
+     */
+    public BAMixedOutcomeAssertion createBAMixedOutcomeAssertion() {
+        return new BAMixedOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link StatusType }
+     * 
+     */
+    public StatusType createStatusType() {
+        return new StatusType();
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exited")
+    public JAXBElement<NotificationType> createExited(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exited_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link StatusType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Status")
+    public JAXBElement<StatusType> createStatus(StatusType value) {
+        return new JAXBElement<StatusType>(_Status_QNAME, StatusType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "NotCompleted")
+    public JAXBElement<NotificationType> createNotCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_NotCompleted_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "GetStatus")
+    public JAXBElement<NotificationType> createGetStatus(NotificationType value) {
+        return new JAXBElement<NotificationType>(_GetStatus_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exit")
+    public JAXBElement<NotificationType> createExit(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exit_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensate")
+    public JAXBElement<NotificationType> createCompensate(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensate_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Fail")
+    public JAXBElement<ExceptionType> createFail(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fail_QNAME, ExceptionType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Failed")
+    public JAXBElement<NotificationType> createFailed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Failed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "CannotComplete")
+    public JAXBElement<NotificationType> createCannotComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_CannotComplete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensated")
+    public JAXBElement<NotificationType> createCompensated(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensated_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Canceled")
+    public JAXBElement<NotificationType> createCanceled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Canceled_QNAME, NotificationType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for StatusType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="StatusType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="State" type="{http://docs.oasis-open.org/ws-tx/wsba/2006/06}StateType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "StatusType", propOrder = {
+    "state",
+    "any"
+})
+public class StatusType {
+
+    @XmlElement(name = "State", required = true)
+    protected QName state;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the state property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getState() {
+        return state;
+    }
+
+    /**
+     * Sets the value of the state property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setState(QName value) {
+        this.state = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/WSBASOAPService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,83 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "WSBA_SOAPService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba.wsdl")
+public class WSBASOAPService
+    extends Service
+{
+
+    private final static URL WSBASOAPSERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:/home/adinn/tmp/wsdl/wsba.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        WSBASOAPSERVICE_WSDL_LOCATION = url;
+    }
+
+    public WSBASOAPService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public WSBASOAPService() {
+        super(WSBASOAPSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "WSBA_SOAPService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType")
+    public BusinessAgreementWithParticipantCompletionCoordinatorPortType getBusinessAgreementWithParticipantCompletionCoordinatorPortType() {
+        return (BusinessAgreementWithParticipantCompletionCoordinatorPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionCoordinatorPortType"), BusinessAgreementWithParticipantCompletionCoordinatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionParticipantPortType")
+    public BusinessAgreementWithParticipantCompletionParticipantPortType getBusinessAgreementWithParticipantCompletionParticipantPortType() {
+        return (BusinessAgreementWithParticipantCompletionParticipantPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionParticipantPortType"), BusinessAgreementWithParticipantCompletionParticipantPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType")
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorPortType getBusinessAgreementWithCoordinatorCompletionCoordinatorPortType() {
+        return (BusinessAgreementWithCoordinatorCompletionCoordinatorPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType"), BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class);
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType")
+    public BusinessAgreementWithCoordinatorCompletionParticipantPortType getBusinessAgreementWithCoordinatorCompletionParticipantPortType() {
+        return (BusinessAgreementWithCoordinatorCompletionParticipantPortType)super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionParticipantPortType"), BusinessAgreementWithCoordinatorCompletionParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/tmp.sav/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.oasis_open.docs.ws_tx.wsba._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.wsdl" />
+
+  <wsdl:binding name="CompletionCoordinator_SOAPBinding" type="wsat:CompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CommitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit" style="document"/>
+      <wsdl:input name="wsat:Commit">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="RollbackOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback" style="document"/>
+      <wsdl:input name="wsat:Rollback">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="CompletionInitiator_SOAPBinding" type="wsat:CompletionInitiatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CommittedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed" style="document"/>
+      <wsdl:input name="wsat:Committed">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="AbortedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted" style="document"/>
+      <wsdl:input name="wsat:Aborted">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="Coordinator_SOAPBinding" type="wsat:CoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="PreparedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared" style="document"/>
+      <wsdl:input name="wsat:Prepared">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="AbortedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted" style="document"/>
+      <wsdl:input name="wsat:Aborted">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ReadOnlyOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly" style="document"/>
+      <wsdl:input name="wsat:ReadOnly">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CommittedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed" style="document"/>
+      <wsdl:input name="wsat:Committed">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="Participant_SOAPBinding" type="wsat:ParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="PrepareOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare" style="document"/>
+      <wsdl:input name="wsat:Prepare">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CommitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit" style="document"/>
+      <wsdl:input name="wsat:Commit">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="RollbackOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback" style="document"/>
+      <wsdl:input name="wsat:Rollback">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="WSAT_SOAPService">
+    <wsdl:port binding="wsat:CompletionCoordinator_SOAPBinding" name="CompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSAT/CompletionCoordinatorSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsat:CompletionInitiator_SOAPBinding" name="CompletionInitiatorPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSAT/CompletionInitiatorSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsat:Coordinator_SOAPBinding" name="CoordinatoPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSAT/CoordinatorSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsat:Participant_SOAPBinding" name="ParticipantPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSAT/ParticipantSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-coordinator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-coordinator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-coordinator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.wsdl" />
+
+  <wsdl:binding name="CompletionCoordinator_SOAPBinding" type="wsat:CompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CommitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit" style="document"/>
+      <wsdl:input name="wsat:Commit">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="RollbackOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback" style="document"/>
+      <wsdl:input name="wsat:Rollback">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="CompletionCoordinatorService">
+    <wsdl:port binding="wsat:CompletionCoordinator_SOAPBinding" name="CompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/wst11/CompletionCoordinatorService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-initiator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-initiator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-completion-initiator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.wsdl" />
+
+  <wsdl:binding name="CompletionInitiator_SOAPBinding" type="wsat:CompletionInitiatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CommittedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed" style="document"/>
+      <wsdl:input name="wsat:Committed">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="AbortedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted" style="document"/>
+      <wsdl:input name="wsat:Aborted">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="CompletionInitiatorService">
+    <wsdl:port binding="wsat:CompletionInitiator_SOAPBinding" name="CompletionInitiatorPortType">
+      <soap:address location="http://localhost:9000/wst11/CompletionInitiatorService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-coordinator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-coordinator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-coordinator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.wsdl" />
+
+  <wsdl:binding name="Coordinator_SOAPBinding" type="wsat:CoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="PreparedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared" style="document"/>
+      <wsdl:input name="wsat:Prepared">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="AbortedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted" style="document"/>
+      <wsdl:input name="wsat:Aborted">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ReadOnlyOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly" style="document"/>
+      <wsdl:input name="wsat:ReadOnly">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CommittedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed" style="document"/>
+      <wsdl:input name="wsat:Committed">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="CoordinatorService">
+    <wsdl:port binding="wsat:Coordinator_SOAPBinding" name="CoordinatoPortType">
+      <soap:address location="http://localhost:9000/wst11/CoordinatorService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-participant-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-participant-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat-participant-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.wsdl" />
+
+  <wsdl:binding name="Participant_SOAPBinding" type="wsat:ParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="PrepareOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare" style="document"/>
+      <wsdl:input name="wsat:Prepare">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CommitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit" style="document"/>
+      <wsdl:input name="wsat:Commit">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="RollbackOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback" style="document"/>
+      <wsdl:input name="wsat:Rollback">
+        <soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="ParticipantService">
+    <wsdl:port binding="wsat:Participant_SOAPBinding" name="ParticipantPortType">
+      <soap:address location="http://localhost:9000/wst11/ParticipantService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsat.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS President.
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS President.
+Copyright OASIS Open 2006. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself must not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:wsa="http://www.w3.org/2005/08/addressing" targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06">
+    <wsdl:types>
+        <xs:schema>
+            <xs:import
+                namespace="http://www.w3.org/2005/08/addressing"
+                schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd" />
+            <xs:import
+                namespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06"
+                schemaLocation="http://docs.oasis-open.org/ws-tx/wsat/2006/06/wsat.xsd" />
+        </xs:schema>
+    </wsdl:types>
+    <!-- Messages -->
+    <wsdl:message name="Prepare">
+        <wsdl:part name="parameters" element="wsat:Prepare"/>
+    </wsdl:message>
+    <wsdl:message name="Prepared">
+        <wsdl:part name="parameters" element="wsat:Prepared"/>
+    </wsdl:message>
+    <wsdl:message name="Aborted">
+        <wsdl:part name="parameters" element="wsat:Aborted"/>
+    </wsdl:message>
+    <wsdl:message name="ReadOnly">
+        <wsdl:part name="parameters" element="wsat:ReadOnly"/>
+    </wsdl:message>
+    <wsdl:message name="Commit">
+        <wsdl:part name="parameters" element="wsat:Commit"/>
+    </wsdl:message>
+    <wsdl:message name="Rollback">
+        <wsdl:part name="parameters" element="wsat:Rollback"/>
+    </wsdl:message>
+    <wsdl:message name="Committed">
+        <wsdl:part name="parameters" element="wsat:Committed"/>
+    </wsdl:message>
+    <!-- Port Types -->
+    <wsdl:portType name="CompletionCoordinatorPortType">
+        <wsdl:operation name="CommitOperation">
+            <wsdl:input message="wsat:Commit"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit"/>
+        </wsdl:operation>
+        <wsdl:operation name="RollbackOperation">
+            <wsdl:input message="wsat:Rollback"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="CompletionInitiatorPortType">
+        <wsdl:operation name="CommittedOperation">
+            <wsdl:input message="wsat:Committed"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed"/>
+        </wsdl:operation>
+        <wsdl:operation name="AbortedOperation">
+            <wsdl:input message="wsat:Aborted"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="CoordinatorPortType">
+        <wsdl:operation name="PreparedOperation">
+            <wsdl:input message="wsat:Prepared"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared"/>
+        </wsdl:operation>
+        <wsdl:operation name="AbortedOperation">
+            <wsdl:input message="wsat:Aborted"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted"/>
+        </wsdl:operation>
+        <wsdl:operation name="ReadOnlyOperation">
+            <wsdl:input message="wsat:ReadOnly"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly"/>
+        </wsdl:operation>
+        <wsdl:operation name="CommittedOperation">
+            <wsdl:input message="wsat:Committed"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="ParticipantPortType">
+        <wsdl:operation name="PrepareOperation">
+            <wsdl:input message="wsat:Prepare"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare"/>
+        </wsdl:operation>
+        <wsdl:operation name="CommitOperation">
+            <wsdl:input message="wsat:Commit"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit"/>
+        </wsdl:operation>
+        <wsdl:operation name="RollbackOperation">
+            <wsdl:input message="wsat:Rollback"
+              wsa:Action="http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback"/>
+        </wsdl:operation>
+    </wsdl:portType>
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.wsdl" />
+
+  <wsdl:binding name="BusinessAgreementWithParticipantCompletionCoordinator_SOAPBinding" type="wsba:BusinessAgreementWithParticipantCompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompletedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed" style="document"/>
+      <wsdl:input name="wsba:Completed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail" style="document"/>
+      <wsdl:input name="wsba:Fail">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensatedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated" style="document"/>
+      <wsdl:input name="wsba:Compensated">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ClosedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed" style="document"/>
+      <wsdl:input name="wsba:Closed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CanceledOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled" style="document"/>
+      <wsdl:input name="wsba:Canceled">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit" style="document"/>
+      <wsdl:input name="wsba:Exit">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CannotComplete">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete" style="document"/>
+      <wsdl:input name="wsba:CannotComplete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+    
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="BusinessAgreementWithParticipantCompletionParticipant_SOAPBinding" type="wsba:BusinessAgreementWithParticipantCompletionParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CloseOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CancelOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel" style="document"/>
+      <wsdl:input name="wsba:Cancel">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensateOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate" style="document"/>
+      <wsdl:input name="wsba:Compensate">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed" style="document"/>
+      <wsdl:input name="wsba:Failed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited" style="document"/>
+      <wsdl:input name="wsba:Exited">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="NotCompleted">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted" style="document"/>
+      <wsdl:input name="wsba:NotCompleted">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="BusinessAgreementWithCoordinatorCompletionCoordinator_SOAPBinding" type="wsba:BusinessAgreementWithCoordinatorCompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompletedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed" style="document"/>
+      <wsdl:input name="wsba:Completed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail" style="document"/>
+      <wsdl:input name="wsba:Fail">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensatedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated" style="document"/>
+      <wsdl:input name="wsba:Compensated">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ClosedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed" style="document"/>
+      <wsdl:input name="wsba:Closed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CanceledOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled" style="document"/>
+      <wsdl:input name="wsba:Canceled">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit" style="document"/>
+      <wsdl:input name="wsba:Exit">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CannotComplete">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete" style="document"/>
+      <wsdl:input name="wsba:CannotComplete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:binding name="BusinessAgreementWithCoordinatorCompletionParticipant_SOAPBinding" type="wsba:BusinessAgreementWithCoordinatorCompletionParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompleteOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete" style="document"/>
+      <wsdl:input name="wsba:Complete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CloseOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CancelOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel" style="document"/>
+      <wsdl:input name="wsba:Cancel">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensateOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed" style="document"/>
+      <wsdl:input name="wsba:Failed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited" style="document"/>
+      <wsdl:input name="wsba:Exited">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="NotCompleted">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted" style="document"/>
+      <wsdl:input name="wsba:NotCompleted">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="WSBA_SOAPService">
+    <wsdl:port binding="wsba:BusinessAgreementWithParticipantCompletionCoordinator_SOAPBinding" name="BusinessAgreementWithParticipantCompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSBA/BusinessAgreementWithParticipantCompletionCoordinatorSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsba:BusinessAgreementWithParticipantCompletionParticipant_SOAPBinding" name="BusinessAgreementWithParticipantCompletionParticipantPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSBA/BusinessAgreementWithParticipantCompletionParticipantSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsba:BusinessAgreementWithCoordinatorCompletionCoordinator_SOAPBinding" name="BusinessAgreementWithCoordinatorCompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSBA/BusinessAgreementWithCoordinatorCompletionCoordinatorSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+
+    <wsdl:port binding="wsba:BusinessAgreementWithCoordinatorCompletionParticipant_SOAPBinding" name="BusinessAgreementWithCoordinatorCompletionParticipantPortType">
+      <soap:address location="http://localhost:9000/SoapContext/WSBA/BusinessAgreementWithCoordinatorCompletionParticipantSoapPort"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.wsdl" />
+
+  <wsdl:binding name="BusinessAgreementWithCoordinatorCompletionCoordinator_SOAPBinding" type="wsba:BusinessAgreementWithCoordinatorCompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompletedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed" style="document"/>
+      <wsdl:input name="wsba:Completed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail" style="document"/>
+      <wsdl:input name="wsba:Fail">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensatedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated" style="document"/>
+      <wsdl:input name="wsba:Compensated">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ClosedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed" style="document"/>
+      <wsdl:input name="wsba:Closed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CanceledOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled" style="document"/>
+      <wsdl:input name="wsba:Canceled">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit" style="document"/>
+      <wsdl:input name="wsba:Exit">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CannotComplete">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete" style="document"/>
+      <wsdl:input name="wsba:CannotComplete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="BusinessAgreementWithCoordinatorCompletionCoordinatorService">
+    <wsdl:port binding="wsba:BusinessAgreementWithCoordinatorCompletionCoordinator_SOAPBinding" name="BusinessAgreementWithCoordinatorCompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/wst11/BusinessAgreementWithCoordinatorCompletionCoordinatorService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-participant-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-participant-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-coordinator-completion-participant-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.wsdl" />
+
+  <wsdl:binding name="BusinessAgreementWithCoordinatorCompletionParticipant_SOAPBinding" type="wsba:BusinessAgreementWithCoordinatorCompletionParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompleteOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete" style="document"/>
+      <wsdl:input name="wsba:Complete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CloseOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CancelOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel" style="document"/>
+      <wsdl:input name="wsba:Cancel">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensateOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed" style="document"/>
+      <wsdl:input name="wsba:Failed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited" style="document"/>
+      <wsdl:input name="wsba:Exited">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="NotCompleted">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted" style="document"/>
+      <wsdl:input name="wsba:NotCompleted">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="BusinessAgreementWithCoordinatorCompletionParticipantService">
+    <wsdl:port binding="wsba:BusinessAgreementWithCoordinatorCompletionParticipant_SOAPBinding" name="BusinessAgreementWithCoordinatorCompletionParticipantPortType">
+      <soap:address location="http://localhost:9000/wst11/BusinessAgreementWithCoordinatorCompletionParticipantService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-coordinator-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-coordinator-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-coordinator-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.wsdl" />
+
+  <wsdl:binding name="BusinessAgreementWithParticipantCompletionCoordinator_SOAPBinding" type="wsba:BusinessAgreementWithParticipantCompletionCoordinatorPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CompletedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed" style="document"/>
+      <wsdl:input name="wsba:Completed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail" style="document"/>
+      <wsdl:input name="wsba:Fail">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensatedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated" style="document"/>
+      <wsdl:input name="wsba:Compensated">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ClosedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed" style="document"/>
+      <wsdl:input name="wsba:Closed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CanceledOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled" style="document"/>
+      <wsdl:input name="wsba:Canceled">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit" style="document"/>
+      <wsdl:input name="wsba:Exit">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CannotComplete">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete" style="document"/>
+      <wsdl:input name="wsba:CannotComplete">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+    
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="BusinessAgreementWithParticipantCompletionCoordinatorService">
+    <wsdl:port binding="wsba:BusinessAgreementWithParticipantCompletionCoordinator_SOAPBinding" name="BusinessAgreementWithParticipantCompletionCoordinatorPortType">
+      <soap:address location="http://localhost:9000/wst11/BusinessAgreementWithParticipantCompletionCoordinatorService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-participant-binding.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-participant-binding.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba-participant-completion-participant-binding.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsaw="http://www.w3.org/2006/02/addressing/wsdl">
+
+  <wsdl:import
+      namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
+      location="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.wsdl" />
+
+  <wsdl:binding name="BusinessAgreementWithParticipantCompletionParticipant_SOAPBinding" type="wsba:BusinessAgreementWithParticipantCompletionParticipantPortType">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="CloseOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close" style="document"/>
+      <wsdl:input name="wsba:Close">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CancelOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel" style="document"/>
+      <wsdl:input name="wsba:Cancel">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="CompensateOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate" style="document"/>
+      <wsdl:input name="wsba:Compensate">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="FailedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed" style="document"/>
+      <wsdl:input name="wsba:Failed">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="ExitedOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited" style="document"/>
+      <wsdl:input name="wsba:Exited">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="NotCompleted">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted" style="document"/>
+      <wsdl:input name="wsba:NotCompleted">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="GetStatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus" style="document"/>
+      <wsdl:input name="wsba:GetStatus">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+
+    <wsdl:operation name="StatusOperation">
+      <soap:operation soapAction="http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status" style="document"/>
+      <wsdl:input name="wsba:Status">
+	<soap:body use="literal"/>
+      </wsdl:input>
+    </wsdl:operation>
+  </wsdl:binding>
+
+  <wsdl:service name="BusinessAgreementWithParticipantCompletionParticipantService">
+    <wsdl:port binding="wsba:BusinessAgreementWithParticipantCompletionParticipant_SOAPBinding" name="BusinessAgreementWithParticipantCompletionParticipantPortType">
+      <soap:address location="http://localhost:9000/wst11/BusinessAgreementWithParticipantCompletionParticipantService"/>
+       <wsaw:UsingAddressing required="true"/>
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba.wsdl
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba.wsdl	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/wsdl/wsba.wsdl	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright OASIS Open 2006. All Rights Reserved. -->
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06">
+  <wsdl:types>
+    <xs:schema>
+      <xs:import namespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" schemaLocation="http://docs.oasis-open.org/ws-tx/wsba/2006/06/wsba.xsd"/>
+    </xs:schema>
+  </wsdl:types>
+  <!-- Messages -->
+  <wsdl:message name="Complete">
+    <wsdl:part name="parameters" element="wsba:Complete"/>
+  </wsdl:message>
+  <wsdl:message name="Completed">
+    <wsdl:part name="parameters" element="wsba:Completed"/>
+  </wsdl:message>
+  <wsdl:message name="Close">
+    <wsdl:part name="parameters" element="wsba:Close"/>
+  </wsdl:message>
+  <wsdl:message name="Closed">
+    <wsdl:part name="parameters" element="wsba:Closed"/>
+  </wsdl:message>
+  <wsdl:message name="Cancel">
+    <wsdl:part name="parameters" element="wsba:Cancel"/>
+  </wsdl:message>
+  <wsdl:message name="Canceled">
+    <wsdl:part name="parameters" element="wsba:Canceled"/>
+  </wsdl:message>
+  <wsdl:message name="Compensate">
+    <wsdl:part name="parameters" element="wsba:Compensate"/>
+  </wsdl:message>
+  <wsdl:message name="Compensated">
+    <wsdl:part name="parameters" element="wsba:Compensated"/>
+  </wsdl:message>
+  <wsdl:message name="Fail">
+    <wsdl:part name="parameters" element="wsba:Fail"/>
+  </wsdl:message>
+  <wsdl:message name="Failed">
+    <wsdl:part name="parameters" element="wsba:Failed"/>
+  </wsdl:message>
+  <wsdl:message name="Exit">
+    <wsdl:part name="parameters" element="wsba:Exit"/>
+  </wsdl:message>
+  <wsdl:message name="Exited">
+    <wsdl:part name="parameters" element="wsba:Exited"/>
+  </wsdl:message>
+  <wsdl:message name="CannotComplete">
+    <wsdl:part name="parameters" element="wsba:CannotComplete"/>
+  </wsdl:message>
+  <wsdl:message name="NotCompleted">
+    <wsdl:part name="parameters" element="wsba:NotCompleted"/>
+  </wsdl:message>
+  <wsdl:message name="GetStatus">
+    <wsdl:part name="parameters" element="wsba:GetStatus"/>
+  </wsdl:message>
+  <wsdl:message name="Status">
+    <wsdl:part name="parameters" element="wsba:Status"/>
+  </wsdl:message>
+  <!-- BusinessAgreement Service -->
+  <wsdl:portType name="BusinessAgreementWithParticipantCompletionCoordinatorPortType">
+    <wsdl:operation name="CompletedOperation">
+      <wsdl:input message="wsba:Completed"/>
+    </wsdl:operation>
+    <wsdl:operation name="FailOperation">
+      <wsdl:input message="wsba:Fail"/>
+    </wsdl:operation>
+    <wsdl:operation name="CompensatedOperation">
+      <wsdl:input message="wsba:Compensated"/>
+    </wsdl:operation>
+    <wsdl:operation name="ClosedOperation">
+      <wsdl:input message="wsba:Closed"/>
+    </wsdl:operation>
+    <wsdl:operation name="CanceledOperation">
+      <wsdl:input message="wsba:Canceled"/>
+    </wsdl:operation>
+    <wsdl:operation name="ExitOperation">
+      <wsdl:input message="wsba:Exit"/>
+    </wsdl:operation>
+    <wsdl:operation name="CannotComplete">
+      <wsdl:input message="wsba:CannotComplete"/>
+    </wsdl:operation>
+    <wsdl:operation name="GetStatusOperation">
+      <wsdl:input message="wsba:GetStatus"/>
+    </wsdl:operation>
+    <wsdl:operation name="StatusOperation">
+      <wsdl:input message="wsba:Status"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="BusinessAgreementWithParticipantCompletionParticipantPortType">
+    <wsdl:operation name="CloseOperation">
+      <wsdl:input message="wsba:Close"/>
+    </wsdl:operation>
+    <wsdl:operation name="CancelOperation">
+      <wsdl:input message="wsba:Cancel"/>
+    </wsdl:operation>
+    <wsdl:operation name="CompensateOperation">
+      <wsdl:input message="wsba:Compensate"/>
+    </wsdl:operation>
+    <wsdl:operation name="FailedOperation">
+      <wsdl:input message="wsba:Failed"/>
+    </wsdl:operation>
+    <wsdl:operation name="ExitedOperation">
+      <wsdl:input message="wsba:Exited"/>
+    </wsdl:operation>
+    <wsdl:operation name="NotCompleted">
+      <wsdl:input message="wsba:NotCompleted"/>
+    </wsdl:operation>
+    <wsdl:operation name="GetStatusOperation">
+      <wsdl:input message="wsba:GetStatus"/>
+    </wsdl:operation>
+    <wsdl:operation name="StatusOperation">
+      <wsdl:input message="wsba:Status"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <!-- BusinessAgreementWithComplete Service -->
+  <wsdl:portType name="BusinessAgreementWithCoordinatorCompletionCoordinatorPortType">
+    <wsdl:operation name="CompletedOperation">
+      <wsdl:input message="wsba:Completed"/>
+    </wsdl:operation>
+    <wsdl:operation name="FailOperation">
+      <wsdl:input message="wsba:Fail"/>
+    </wsdl:operation>
+    <wsdl:operation name="CompensatedOperation">
+      <wsdl:input message="wsba:Compensated"/>
+    </wsdl:operation>
+    <wsdl:operation name="ClosedOperation">
+      <wsdl:input message="wsba:Closed"/>
+    </wsdl:operation>
+    <wsdl:operation name="CanceledOperation">
+      <wsdl:input message="wsba:Canceled"/>
+    </wsdl:operation>
+    <wsdl:operation name="ExitOperation">
+      <wsdl:input message="wsba:Exit"/>
+    </wsdl:operation>
+    <wsdl:operation name="CannotComplete">
+      <wsdl:input message="wsba:CannotComplete"/>
+    </wsdl:operation>
+    <wsdl:operation name="GetStatusOperation">
+      <wsdl:input message="wsba:GetStatus"/>
+    </wsdl:operation>
+    <wsdl:operation name="StatusOperation">
+      <wsdl:input message="wsba:Status"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:portType name="BusinessAgreementWithCoordinatorCompletionParticipantPortType">
+    <wsdl:operation name="CompleteOperation">
+      <wsdl:input message="wsba:Complete"/>
+    </wsdl:operation>
+    <wsdl:operation name="CloseOperation">
+      <wsdl:input message="wsba:Close"/>
+    </wsdl:operation>
+    <wsdl:operation name="CancelOperation">
+      <wsdl:input message="wsba:Cancel"/>
+    </wsdl:operation>
+    <wsdl:operation name="CompensateOperation">
+      <wsdl:input message="wsba:Compensate"/>
+    </wsdl:operation>
+    <wsdl:operation name="FailedOperation">
+      <wsdl:input message="wsba:Failed"/>
+    </wsdl:operation>
+    <wsdl:operation name="ExitedOperation">
+      <wsdl:input message="wsba:Exited"/>
+    </wsdl:operation>
+    <wsdl:operation name="NotCompleted">
+      <wsdl:input message="wsba:NotCompleted"/>
+    </wsdl:operation>
+    <wsdl:operation name="GetStatusOperation">
+      <wsdl:input message="wsba:GetStatus"/>
+    </wsdl:operation>
+    <wsdl:operation name="StatusOperation">
+      <wsdl:input message="wsba:Status"/>
+    </wsdl:operation>
+  </wsdl:portType>
+</wsdl:definitions>
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/ws-addr.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/ws-addr.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/ws-addr.xsd	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
+<!--
+    W3C XML Schema defined in the Web Services Addressing 1.0 specification
+    http://www.w3.org/TR/ws-addr-core
+
+   Copyright © 2005 World Wide Web Consortium,
+
+   (Massachusetts Institute of Technology, European Research Consortium for
+   Informatics and Mathematics, Keio University). All Rights Reserved. This
+   work is distributed under the W3C® Software License [1] in the hope that
+   it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+   [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+   $Id: ws-addr.xsd,v 1.1 2006/03/21 10:19:47 hugo Exp $
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2005/08/addressing" targetNamespace="http://www.w3.org/2005/08/addressing" blockDefault="#all" elementFormDefault="qualified" finalDefault="" attributeFormDefault="unqualified">
+	
+	<!-- Constructs from the WS-Addressing Core -->
+
+	<xs:element name="EndpointReference" type="tns:EndpointReferenceType"/>
+	<xs:complexType name="EndpointReferenceType" mixed="false">
+		<xs:sequence>
+			<xs:element name="Address" type="tns:AttributedURIType"/>
+			<xs:element ref="tns:ReferenceParameters" minOccurs="0"/>
+
+			<xs:element ref="tns:Metadata" minOccurs="0"/>
+			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+	<xs:element name="ReferenceParameters" type="tns:ReferenceParametersType"/>
+	<xs:complexType name="ReferenceParametersType" mixed="false">
+		<xs:sequence>
+			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+	<xs:element name="Metadata" type="tns:MetadataType"/>
+	<xs:complexType name="MetadataType" mixed="false">
+		<xs:sequence>
+			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+
+	</xs:complexType>
+	
+	<xs:element name="MessageID" type="tns:AttributedURIType"/>
+	<xs:element name="RelatesTo" type="tns:RelatesToType"/>
+	<xs:complexType name="RelatesToType" mixed="false">
+		<xs:simpleContent>
+			<xs:extension base="xs:anyURI">
+				<xs:attribute name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" default="http://www.w3.org/2005/08/addressing/reply"/>
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:simpleType name="RelationshipTypeOpenEnum">
+		<xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+	</xs:simpleType>
+	
+	<xs:simpleType name="RelationshipType">
+		<xs:restriction base="xs:anyURI">
+			<xs:enumeration value="http://www.w3.org/2005/08/addressing/reply"/>
+		</xs:restriction>
+
+	</xs:simpleType>
+	
+	<xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+	<xs:element name="From" type="tns:EndpointReferenceType"/>
+	<xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+	<xs:element name="To" type="tns:AttributedURIType"/>
+	<xs:element name="Action" type="tns:AttributedURIType"/>
+
+	<xs:complexType name="AttributedURIType" mixed="false">
+		<xs:simpleContent>
+
+			<xs:extension base="xs:anyURI">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<!-- Constructs from the WS-Addressing SOAP binding -->
+
+	<xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+	
+	<xs:simpleType name="FaultCodesOpenEnumType">
+
+		<xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+	</xs:simpleType>
+	
+	<xs:simpleType name="FaultCodesType">
+		<xs:restriction base="xs:QName">
+			<xs:enumeration value="tns:InvalidAddressingHeader"/>
+			<xs:enumeration value="tns:InvalidAddress"/>
+			<xs:enumeration value="tns:InvalidEPR"/>
+			<xs:enumeration value="tns:InvalidCardinality"/>
+			<xs:enumeration value="tns:MissingAddressInEPR"/>
+
+			<xs:enumeration value="tns:DuplicateMessageID"/>
+			<xs:enumeration value="tns:ActionMismatch"/>
+			<xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+			<xs:enumeration value="tns:DestinationUnreachable"/>
+			<xs:enumeration value="tns:ActionNotSupported"/>
+			<xs:enumeration value="tns:EndpointUnavailable"/>
+		</xs:restriction>
+	</xs:simpleType>
+	
+	<xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType"/>
+
+	<xs:complexType name="AttributedUnsignedLongType" mixed="false">
+		<xs:simpleContent>
+			<xs:extension base="xs:unsignedLong">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType"/>
+	<xs:complexType name="AttributedQNameType" mixed="false">
+
+		<xs:simpleContent>
+			<xs:extension base="xs:QName">
+				<xs:anyAttribute namespace="##other" processContents="lax"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+	
+	<xs:element name="ProblemAction" type="tns:ProblemActionType"/>
+	<xs:complexType name="ProblemActionType" mixed="false">
+
+		<xs:sequence>
+			<xs:element ref="tns:Action" minOccurs="0"/>
+			<xs:element name="SoapAction" minOccurs="0" type="xs:anyURI"/>
+		</xs:sequence>
+		<xs:anyAttribute namespace="##other" processContents="lax"/>
+	</xs:complexType>
+	
+</xs:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsat.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsat.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsat.xsd	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS President.
+OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS President.
+Copyright OASIS Open 2006. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself must not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.
+This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-->
+<xsd:schema targetNamespace="http://docs.oasis-open.org/ws-tx/wsat/2006/06" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsat="http://docs.oasis-open.org/ws-tx/wsat/2006/06" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+    <xsd:complexType name="Notification">
+        <xsd:sequence>
+            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:anyAttribute namespace="##other" processContents="lax"/>
+    </xsd:complexType>
+    <xsd:element name="Prepare" type="wsat:Notification"/>
+    <xsd:element name="Prepared" type="wsat:Notification"/>
+    <xsd:element name="Aborted" type="wsat:Notification"/>
+    <xsd:element name="ReadOnly" type="wsat:Notification"/>
+    <xsd:element name="Commit" type="wsat:Notification"/>
+    <xsd:element name="Rollback" type="wsat:Notification"/>
+    <xsd:element name="Committed" type="wsat:Notification"/>
+    <xsd:simpleType name="ErrorCodes">
+        <xsd:restriction base="xsd:QName">
+            <xsd:enumeration value="wsat:InconsistentInternalState"/>
+            <xsd:enumeration value="wsat:UnknownTransaction"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!-- Policy assertion -->
+    <xsd:element name="ATAssertion">
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+            </xsd:sequence>
+            <xsd:anyAttribute namespace="##other" processContents="lax" />
+        </xsd:complexType>
+    </xsd:element>
+</xsd:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsba.xsd
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsba.xsd	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/dd/wscoor1.1/xsd/wsba.xsd	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright OASIS Open 2006. All Rights Reserved. -->
+<xsd:schema targetNamespace="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:wsba="http://docs.oasis-open.org/ws-tx/wsba/2006/06" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+	<xsd:complexType name="NotificationType">
+		<xsd:sequence>
+			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:complexType>
+	<xsd:complexType name="ExceptionType">
+		<xsd:sequence>
+			<xsd:element name="ExceptionIdentifier" type="xsd:QName"/>
+			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:complexType>
+	<!-- Coordinator accepts -->
+	<xsd:element name="Canceled" type="wsba:NotificationType"/>
+	<xsd:element name="Closed" type="wsba:NotificationType"/>
+	<xsd:element name="Compensated" type="wsba:NotificationType"/>
+	<xsd:element name="Completed" type="wsba:NotificationType"/>
+	<xsd:element name="Exit" type="wsba:NotificationType"/>
+      <xsd:element name="CannotComplete" type="wsba:NotificationType"/>
+	<xsd:element name="Fail" type="wsba:ExceptionType"/>
+	<!-- Participant accepts -->
+	<xsd:element name="Cancel" type="wsba:NotificationType"/>
+	<xsd:element name="Close" type="wsba:NotificationType"/>
+	<xsd:element name="Compensate" type="wsba:NotificationType"/>
+	<xsd:element name="Complete" type="wsba:NotificationType"/>
+	<xsd:element name="Failed" type="wsba:NotificationType"/>
+      <xsd:element name="NotCompleted" type="wsba:NotificationType"/>
+	<xsd:element name="Exited" type="wsba:NotificationType"/>
+	<!-- Both accept -->
+	<xsd:element name="GetStatus" type="wsba:NotificationType"/>
+	<xsd:complexType name="StatusType">
+		<xsd:sequence>
+			<xsd:element name="State" type="wsba:StateType"/>
+			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:complexType>
+	<xsd:element name="Status" type="wsba:StatusType"/>
+	<xsd:simpleType name="StateType">
+		<xsd:restriction base="xsd:QName">
+			<xsd:enumeration value="wsba:Active"/>
+			<xsd:enumeration value="wsba:Canceling"/>
+			<xsd:enumeration value="wsba:Canceling-Active"/>
+			<xsd:enumeration value="wsba:Canceling-Completing"/>
+			<xsd:enumeration value="wsba:Completing"/>
+			<xsd:enumeration value="wsba:Completed"/>
+			<xsd:enumeration value="wsba:Closing"/>
+			<xsd:enumeration value="wsba:Compensating"/>
+			<xsd:enumeration value="wsba:Failing-Active"/>
+                  <xsd:enumeration value="wsba:Failing-Canceling"/>
+                  <xsd:enumeration value="wsba:Failing-Completing"/>
+			<xsd:enumeration value="wsba:Failing-Compensating"/>
+                  <xsd:enumeration value="wsba:Exiting"/>
+                  <xsd:enumeration value="wsba:NotCompleting"/>
+			<xsd:enumeration value="wsba:Ended"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+    <!-- Policy assertions -->
+    <xsd:element name="BAAtomicOutcomeAssertion">
+		<xsd:complexType>
+			<xsd:sequence>
+                   <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:sequence>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+		</xsd:complexType>
+    </xsd:element>
+    <xsd:element name="BAMixedOutcomeAssertion">
+		<xsd:complexType>
+			<xsd:sequence>
+                   <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+               </xsd:sequence>
+               <xsd:anyAttribute namespace="##other" processContents="lax"/>
+		</xsd:complexType>
+    </xsd:element>
+
+</xsd:schema>

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,180 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="soapFaultType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="subCode" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;element name="reason" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "soapFaultType",
+    "subCode",
+    "reason",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(required = true)
+    protected String soapFaultType;
+    @XmlElement(required = true)
+    protected QName subCode;
+    @XmlElement(required = true)
+    protected String reason;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the soapFaultType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSoapFaultType() {
+        return soapFaultType;
+    }
+
+    /**
+     * Sets the value of the soapFaultType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSoapFaultType(String value) {
+        this.soapFaultType = value;
+    }
+
+    /**
+     * Gets the value of the subCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getSubCode() {
+        return subCode;
+    }
+
+    /**
+     * Sets the value of the subCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setSubCode(QName value) {
+        this.subCode = value;
+    }
+
+    /**
+     * Gets the value of the reason property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReason() {
+        return reason;
+    }
+
+    /**
+     * Sets the value of the reason property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReason(String value) {
+        this.reason = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,131 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the com.arjuna.schemas.ws._2005._10.wsarjtx package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Close_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Close");
+    private final static QName _Closed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Closed");
+    private final static QName _Cancel_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancel");
+    private final static QName _Completed_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Completed");
+    private final static QName _Faulted_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Faulted");
+    private final static QName _Cancelled_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Cancelled");
+    private final static QName _Complete_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Complete");
+    private final static QName _Fault_QNAME = new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "Fault");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.arjuna.schemas.ws._2005._10.wsarjtx
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Faulted")
+    public JAXBElement<NotificationType> createFaulted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Faulted_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Cancelled")
+    public JAXBElement<NotificationType> createCancelled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancelled_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", name = "Fault")
+    public JAXBElement<ExceptionType> createFault(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fault_QNAME, ExceptionType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationCoordinatorPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "TerminationCoordinatorService", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", wsdlLocation = "/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl")
+public class TerminationCoordinatorService
+    extends Service
+{
+
+    private final static URL TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsarjtx-termination-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TerminationCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TerminationCoordinatorService() {
+        super(TERMINATIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationCoordinatorPortType
+     */
+    @WebEndpoint(name = "TerminationCoordinatorService")
+    public TerminationCoordinatorPortType getTerminationCoordinatorService() {
+        return super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationCoordinatorService"), TerminationCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "TerminationParticipantPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface TerminationParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelledOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled")
+    @Oneway
+    public void cancelledOperation(
+        @WebParam(name = "Cancelled", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted")
+    @Oneway
+    public void faultedOperation(
+        @WebParam(name = "Faulted", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault")
+    @Oneway
+    public void faultOperation(
+        @WebParam(name = "Fault", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        ExceptionType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/TerminationParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package com.arjuna.schemas.ws._2005._10.wsarjtx;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "TerminationParticipantService", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", wsdlLocation = "/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl")
+public class TerminationParticipantService
+    extends Service
+{
+
+    private final static URL TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsarjtx-termination-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public TerminationParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public TerminationParticipantService() {
+        super(TERMINATIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns TerminationParticipantPortType
+     */
+    @WebEndpoint(name = "TerminationParticipantService")
+    public TerminationParticipantPortType getTerminationParticipantService() {
+        return super.getPort(new QName("http://schemas.arjuna.com/ws/2005/10/wsarjtx", "TerminationParticipantService"), TerminationParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/schemas/ws/_2005/_10/wsarjtx/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package com.arjuna.schemas.ws._2005._10.wsarjtx;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXWSConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXWSConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/ArjunaTXWSConstants.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing Arjuna WS constants.
+ */
+public interface ArjunaTXWSConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSARJTX_NAMESPACE = "http://schemas.arjuna.com/ws/2005/10/wsarjtx" ;
+    /**
+     * The Attribute Namespace.
+     */
+    public String WSARJTX_ATTRIBUTE_NAMESPACE = "" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSARJTX_PREFIX = "wsarjtx" ;
+    /**
+     * The attribute namespace prefix.
+     */
+    public String WSARJTX_ATTRIBUTE_PREFIX = "" ;
+
+    /**
+     * The termination participant service name.
+     */
+    public String TERMINATION_PARTICIPANT_SERVICE_NAME = "TerminationParticipantService" ;
+    /**
+     * The termination participant service qname.
+     */
+    public QName TERMINATION_PARTICIPANT_SERVICE_QNAME = new QName(WSARJTX_NAMESPACE, TERMINATION_PARTICIPANT_SERVICE_NAME, WSARJTX_PREFIX) ;
+
+    /**
+     * The termination participant soap service port name
+     */
+     public String TERMINATION_PARTICIPANT_PORT_NAME = "TerminationParticipantPortType";
+    /**
+     * The termination participant soap service port qname
+     */
+     public QName TERMINATION_PARTICIPANT_PORT_QNAME = new QName(WSARJTX_NAMESPACE, TERMINATION_PARTICIPANT_PORT_NAME, WSARJTX_PREFIX);
+
+    /**
+     * The termination coordinator service name.
+     */
+    public String TERMINATION_COORDINATOR_SERVICE_NAME = "TerminationCoordinatorService" ;
+    /**
+     * The termination coordinator service qname.
+     */
+    public QName TERMINATION_COORDINATOR_SERVICE_QNAME = new QName(WSARJTX_NAMESPACE, TERMINATION_COORDINATOR_SERVICE_NAME, WSARJTX_PREFIX) ;
+
+    /**
+     * The termination coordinator soap service port name
+     */
+     public String TERMINATION_COORDINATOR_PORT_NAME = "TerminationCoordinatorPortType";
+    /**
+     * The termination coordinator soap service port qname
+     */
+     public QName TERMINATION_COORDINATOR_PORT_QNAME = new QName(WSARJTX_NAMESPACE, TERMINATION_COORDINATOR_PORT_NAME, WSARJTX_PREFIX);
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationClient.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationClient.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,88 @@
+package com.arjuna.webservices.wsarjtx.client;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.*;
+import org.jboss.ws.extensions.addressing.jaxws.WSAddressingClientHandler;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: adinn
+ * Date: Nov 16, 2007
+ * Time: 6:02:28 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class TerminationClient
+{
+    // we need a service per thread
+
+    private static ThreadLocal<TerminationParticipantService> terminationParticipantService = new ThreadLocal<TerminationParticipantService>();
+
+    private static ThreadLocal<TerminationCoordinatorService> terminationCoordinatorService = new ThreadLocal<TerminationCoordinatorService>();
+
+    private static TerminationParticipantService getTerminationParticipantService()
+    {
+        if (terminationParticipantService.get() == null) {
+            terminationParticipantService.set(new TerminationParticipantService());
+        }
+        return terminationParticipantService.get();
+    }
+
+    private static TerminationCoordinatorService getTerminationCoordinatorService()
+    {
+        if (terminationCoordinatorService.get() == null) {
+            terminationCoordinatorService.set(new TerminationCoordinatorService());
+        }
+        return terminationCoordinatorService.get();
+    }
+
+    public static TerminationParticipantPortType getTerminationParticipantPort(AddressingProperties addressingProperties)
+    {
+        TerminationParticipantService service = getTerminationParticipantService();
+        TerminationParticipantPortType port = service.getPort(TerminationParticipantPortType.class);
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+         * we need to configure an instance identifier handler for this port.
+         * we also have to add the the WSAdressing client handler to get round the fact that we cannot specify the
+         * WS AddressingFeature when we create the service
+         */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new WSAddressingClientHandler());
+		bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+	    // jbossws should do this for us . . .
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+
+    public static TerminationCoordinatorPortType getRegistrationPort(AddressingProperties addressingProperties)
+    {
+        TerminationCoordinatorService service = getTerminationCoordinatorService();
+        TerminationCoordinatorPortType port = service.getPort(TerminationCoordinatorPortType.class);
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+         * we need to configure an instance identifier handler for this port.
+         * we also have to add the the WSAdressing client handler to get round the fact that we cannot specify the
+         * WS AddressingFeature when we create the service
+         */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+		customHandlerChain.add(new WSAddressingClientHandler());
+		bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+	    // jbossws should do this for us . . .
+	    requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationCoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.client;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorPortType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Terminator Participant.
+ * @author kevin
+ */
+public class TerminationCoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final TerminationCoordinatorClientWS CLIENT = new TerminationCoordinatorClientWS() ;
+
+    /**
+     * The complete action.
+     */
+    private AttributedURI completeAction = null;
+    /**
+     * The close action.
+     */
+    private AttributedURI closeAction = null;
+    /**
+     * The cancel action.
+     */
+    private AttributedURI cancelAction = null;
+
+    /**
+     * Construct the terminator participant client.
+     */
+    private TerminationCoordinatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            completeAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_COMPLETE);
+            closeAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_CLOSE);
+            cancelAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_CANCEL);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        //final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        //AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        //ClientPolicy.register(handlerRegistry) ;
+    }
+
+    /**
+     * Send a complete request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendComplete(final W3CEndpointReference coordinator, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationCoordinatorPortType port = getPort(coordinator, addressingProperties, identifier, completeAction);
+        final NotificationType complete = new NotificationType();
+
+        port.completeOperation(complete);
+    }
+
+    /**
+     * Send a close request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClose(final W3CEndpointReference coordinator, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationCoordinatorPortType port = getPort(coordinator, addressingProperties, identifier, closeAction);
+        final NotificationType close = new NotificationType();
+
+        port.completeOperation(close);
+    }
+
+    /**
+     * Send a cancel request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancel(final W3CEndpointReference coordinator, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationCoordinatorPortType port = getPort(coordinator, addressingProperties, identifier, completeAction);
+        final NotificationType cancel = new NotificationType();
+
+        port.completeOperation(cancel);
+    }
+
+    /**
+     * Get the Terminator Coordinator client singleton.
+     * @return The Terminator Coordinator client singleton.
+     */
+    public static TerminationCoordinatorClientWS getClient()
+    {
+        return CLIENT ;
+    }
+
+    private TerminationCoordinatorPortType getPort(final W3CEndpointReference endpoint,
+                                                   final AddressingProperties addressingProperties,
+                                                   final InstanceIdentifierWS identifier,
+                                                   final AttributedURI action)
+    {
+        TerminationCoordinatorPortType port = endpoint.getPort(TerminationCoordinatorPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/client/TerminationParticipantClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,223 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.client;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.ExceptionType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantPortType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Terminator Coordinator.
+ * @author kevin
+ */
+public class TerminationParticipantClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final TerminationParticipantClientWS CLIENT = new TerminationParticipantClientWS() ;
+
+    /**
+     * The completed action.
+     */
+    private AttributedURI completedAction = null;
+    /**
+     * The closed action.
+     */
+    private AttributedURI closedAction = null;
+    /**
+     * The cancelled action.
+     */
+    private AttributedURI cancelledAction = null;
+    /**
+     * The faulted action.
+     */
+    private AttributedURI faultedAction = null;
+    /**
+     * The SOAP fault action.
+     */
+    private AttributedURI soapFaultAction = null;
+
+    /**
+     * Construct the terminator coordinator client.
+     */
+    private TerminationParticipantClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            completedAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_COMPLETED);
+            closedAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_CLOSED);
+            cancelledAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_CANCELLED);
+            faultedAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_FAULTED);
+            soapFaultAction = builder.newURI(ArjunaTXConstants.WSARJTX_ACTION_SOAP_FAULT);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+    }
+
+    /**
+     * Send a completed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompleted(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationParticipantPortType port = getPort(participant, addressingProperties, identifier, completedAction);
+        final NotificationType completed = new NotificationType();
+
+        port.completedOperation(completed);
+    }
+
+    /**
+     * Send a closed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClosed(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationParticipantPortType port = getPort(participant, addressingProperties, identifier, closedAction);
+        final NotificationType closed = new NotificationType();
+
+        port.completedOperation(closed);
+    }
+
+    /**
+     * Send a cancelled request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancelled(final W3CEndpointReference participant,final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationParticipantPortType port = getPort(participant, addressingProperties, identifier, cancelledAction);
+        final NotificationType cancelled = new NotificationType();
+
+        port.cancelledOperation(cancelled);
+    }
+
+    /**
+     * Send a faulted request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendFaulted(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationParticipantPortType port = getPort(participant, addressingProperties, identifier, faultedAction);
+        final NotificationType faulted = new NotificationType();
+
+        port.faultedOperation(faulted);
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingProperties The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna  instance identifier.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendSoapFault(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final SoapFault soapFault, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        final TerminationParticipantPortType port = getPort(participant, addressingProperties, identifier, soapFaultAction);
+        final ExceptionType fault = new ExceptionType();
+        // we pass the fault type, reason and subcode. we cannot pass the detail and header elements as they are
+        // built from Kev's element types rather than dom element types. this is all we need anyway since we only
+        // see faults containing those values
+        fault.setSoapFaultType(soapFault.getSoapFaultType().getValue());
+        fault.setReason(soapFault.getReason());
+        fault.setSubCode(soapFault.getSubcode());
+
+        port.faultOperation(fault);
+    }
+
+    /**
+     * Get the Terminator Coordinator client singleton.
+     * @return The Terminator Coordinator client singleton.
+     */
+    public static TerminationParticipantClientWS getClient()
+    {
+        return CLIENT ;
+    }
+
+    private TerminationParticipantPortType getPort(final W3CEndpointReference endpoint,
+                                                   final AddressingProperties addressingProperties,
+                                                   final InstanceIdentifierWS identifier,
+                                                   final AttributedURI action)
+    {
+        TerminationParticipantPortType port = endpoint.getPort(TerminationParticipantPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.processors;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.wst.BusinessActivityTerminatorWS;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Terminator Participant processor.
+ * @author kevin
+ */
+public abstract class TerminationCoordinatorProcessorWS
+{
+    /**
+     * The participant processor.
+     */
+    private static TerminationCoordinatorProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static TerminationCoordinatorProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static TerminationCoordinatorProcessorWS setProcessor(final TerminationCoordinatorProcessorWS processor)
+    {
+        final TerminationCoordinatorProcessorWS origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final BusinessActivityTerminatorWS participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final BusinessActivityTerminatorWS participant) ;
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void complete(final NotificationType complete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallbackWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallbackWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantCallbackWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.processors;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Terminator Coordinator callback.
+ * @author kevin
+ */
+public abstract class TerminationParticipantCallbackWS extends Callback
+{
+    /**
+     * A cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A closed response.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A completed response.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void faulted(final NotificationType faulted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/processors/TerminationParticipantProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,140 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.processors;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.processor.BaseNotificationProcessorWS;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Terminator Coordinator processor.
+ * @author kevin
+ */
+public class TerminationParticipantProcessorWS extends BaseNotificationProcessorWS
+{
+    /**
+     * The coordinator processor.
+     */
+    private static final TerminationParticipantProcessorWS PROCESSOR = new TerminationParticipantProcessorWS() ;
+
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static TerminationParticipantProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Handle a cancelled response.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCancelled(final NotificationType cancelled, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallbackWS)callback).cancelled(cancelled, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a closed response.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleClosed(final NotificationType closed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallbackWS)callback).closed(closed, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a completed response.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCompleted(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallbackWS)callback).completed(completed, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a faulted response.
+     * @param faulted The faulted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleFaulted(final NotificationType faulted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallbackWS)callback).faulted(faulted, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((TerminationParticipantCallbackWS)callback).soapFault(soapFault, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Register a callback for the specific instance identifier.
+     * @param instanceIdentifier The instance identifier.
+     * @param callback The callback for the response.
+     */
+    public void registerCallback(final String instanceIdentifier, final TerminationParticipantCallbackWS callback)
+    {
+        register(instanceIdentifier, callback) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationCoordinatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationCoordinatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationCoordinatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package com.arjuna.webservices.wsarjtx.sei;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationCoordinatorPortType;
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessorWS;
+
+import javax.annotation.Resource;
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "TerminationCoordinatorPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx",
+        wsdlLocation = "../wsdl/wsarjtx-termination-coordinator-binding.wsdl",
+        serviceName = "TerminationCoordinatorService",
+        portName = "TerminationCoordinatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at Addressing(required=true)
+public class TerminationCoordinatorPortTypeImpl implements TerminationCoordinatorPortType
+{
+
+    @Resource
+     private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Complete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType complete = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessorWS.getProcessor().complete(complete, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType close = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessorWS.getProcessor().complete(close, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType cancel = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationCoordinatorProcessorWS.getProcessor().complete(cancel, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationParticipantPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationParticipantPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/sei/TerminationParticipantPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,176 @@
+
+package com.arjuna.webservices.wsarjtx.sei;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.ExceptionType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.schemas.ws._2005._10.wsarjtx.TerminationParticipantPortType;
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessorWS;
+
+import javax.annotation.Resource;
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "TerminationParticipantPortType", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx",
+        wsdlLocation = "../wsdl/wsarjtx-termination-participant-binding.wsdl",
+        serviceName = "TerminationParticipantervice",
+        portName = "TerminationParticipantPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at Addressing(required=true)
+public class TerminationParticipantPortTypeImpl implements TerminationParticipantPortType
+{
+
+    @Resource
+     private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType completed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessorWS.getProcessor().handleCompleted(completed, inboundAddressProperties, arjunaContext); ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType closed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessorWS.getProcessor().handleClosed(closed, inboundAddressProperties, arjunaContext); ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelledOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Cancelled")
+    @Oneway
+    public void cancelledOperation(
+        @WebParam(name = "Cancelled", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType cancelled = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessorWS.getProcessor().handleCancelled(cancelled, inboundAddressProperties, arjunaContext); ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "FaultedOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Faulted")
+    @Oneway
+    public void faultedOperation(
+        @WebParam(name = "Faulted", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType faulted = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessorWS.getProcessor().handleFaulted(faulted, inboundAddressProperties, arjunaContext); ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     *
+     * @message com.arjuna.webservices.wsarjtx.sei.TerminationParticipantPortTypeImpl_1 [com.arjuna.webservices.wsarjtx.sei.TerminationParticipantPortTypeImpl_1] - Invalid soap fault type
+     */
+    @WebMethod(operationName = "FaultOperation", action = "http://schemas.arjuna.com/ws/2005/10/wsarjtx/Fault")
+    @Oneway
+    public void faultOperation(
+        @WebParam(name = "Fault", targetNamespace = "http://schemas.arjuna.com/ws/2005/10/wsarjtx", partName = "parameters")
+        ExceptionType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        String soapFaultTypeName = parameters.getSoapFaultType();
+        String reason = parameters.getReason();
+        QName subcode = parameters.getSubCode();
+        final SoapFault soapFault;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+        try {
+            SoapFaultType soapFaultType = SoapFaultType.toState(parameters.getSoapFaultType());
+            soapFault = new SoapFault(soapFaultType, subcode, reason);
+        } catch (Exception e) {
+            String message = WSTLogger.log_mesg.getString("com.arjuna.webservices.wsarjtx.sei.TerminationParticipantPortTypeImpl_1");
+            throw new WebServiceException(message, e);
+        }
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                TerminationParticipantProcessorWS.getProcessor().handleSoapFault(soapFault, inboundAddressProperties, arjunaContext); ;
+            }
+        }) ;
+    }
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Terminator Participant service
+ * @author kevin
+ */
+public class TerminationCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + ArjunaTXWSConstants.TERMINATION_COORDINATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(ArjunaTXWSConstants.TERMINATION_COORDINATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Modified: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantInitialisation.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -22,13 +22,16 @@
 
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
 
 import com.arjuna.webservices.HandlerRegistry;
 import com.arjuna.webservices.SoapRegistry;
 import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.ServiceRegistryWS;
 import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
 import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
 import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
 import com.arjuna.webservices.wsarjtx.policy.TerminationParticipantPolicy;
 import com.arjuna.services.framework.startup.Sequencer;
 
@@ -44,20 +47,15 @@
      */
     public void contextInitialized(final ServletContextEvent servletContextEvent)
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST) {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + ArjunaTXWSConstants.TERMINATION_PARTICIPANT_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
            public void run() {
-               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
-        
-               // Add WS-Addressing
-               AddressingPolicy.register(handlerRegistry) ;
-               // Add Arjuna handlers
-               ArjunaPolicy.register(handlerRegistry) ;
-               // Add Terminator coordinator.
-               TerminationParticipantPolicy.register(handlerRegistry) ;
-        
-               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
-               soapRegistry.registerSoapService(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT,
-                       new SoapService(handlerRegistry)) ;
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(ArjunaTXWSConstants.TERMINATION_PARTICIPANT_SERVICE_NAME, uri) ;
            }
         };
     }

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsarjtx/server/TerminationParticipantWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsarjtx.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.policy.TerminationParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Terminator Coordinator service
+ * @author kevin
+ */
+public class TerminationParticipantWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST) {
+           public void run() {
+               final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+               // Add WS-Addressing
+               AddressingPolicy.register(handlerRegistry) ;
+               // Add Arjuna handlers
+               ArjunaPolicy.register(handlerRegistry) ;
+               // Add Terminator coordinator.
+               TerminationParticipantPolicy.register(handlerRegistry) ;
+
+               final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+               soapRegistry.registerSoapService(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT,
+                       new SoapService(handlerRegistry)) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionWSConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionWSConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/AtomicTransactionWSConstants.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,227 @@
+package com.arjuna.webservices.wsat;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-AtomicTransaction constants.
+ */
+public interface AtomicTransactionWSConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSAT_NAMESPACE = "http://docs.oasis-open.org/ws-tx/wsat/2006/06";
+    /**
+     * The Attribute Namespace.
+     */
+    public String WSAT_ATTRIBUTE_NAMESPACE = "" ;
+    /**
+     * The namespace prefix.
+     */
+    public String WSAT_PREFIX = "wsat" ;
+    /**
+     * The attribute namespace prefix.
+     */
+    public String WSAT_ATTRIBUTE_PREFIX = "" ;
+
+    /**
+     * The completion coordinator service name.
+     */
+    public String COMPLETION_COORDINATOR_SERVICE_NAME = "CompletionCoordinator" ;
+    /**
+     * The completion coordinator service qname.
+     */
+    public QName COMPLETION_COORDINATOR_SERVICE_QNAME = new QName(WSAT_NAMESPACE, COMPLETION_COORDINATOR_SERVICE_NAME, WSAT_PREFIX);
+
+     /**
+     * The WSAT Completion Cordinator Port Name.
+     */
+    public String COMPLETION_COORDINATOR_PORT_NAME = "CompletionCoordinatorPortType";
+    /**
+     * The WSAT Completion Cordinator Port QName.
+     */
+    public QName COMPLETION_COORDINATOR_PORT_QNAME = new QName(WSAT_NAMESPACE, COMPLETION_COORDINATOR_PORT_NAME, WSAT_PREFIX);
+
+    /**
+      * The completion initiator service name.
+      */
+     public String COMPLETION_INITIATOR_SERVICE_NAME = "CompletionInitiator" ;
+     /**
+      * The completion initiator service qname.
+      */
+     public QName COMPLETION_INITIATOR_SERVICE_QNAME = new QName(WSAT_NAMESPACE, COMPLETION_INITIATOR_SERVICE_NAME, WSAT_PREFIX);
+    /**
+     * The WSAT Completion Initiator Port Name.
+     */
+    public String COMPLETION_INITIATOR_PORT_NAME = "CompletionInitiatorPortType";
+    /**
+     * The WSAT Completion Initiator Port QName.
+     */
+    public QName COMPLETION_INITIATOR_PORT_QNAME = new QName(WSAT_NAMESPACE, COMPLETION_INITIATOR_PORT_NAME, WSAT_PREFIX);
+
+    /**
+     * The coordinator service name.
+     */
+    public String COORDINATOR_SERVICE_NAME = "Coordinator" ;
+    /**
+     * The coordinator service qname.
+     */
+    public QName COORDINATOR_SERVICE_QNAME = new QName(WSAT_NAMESPACE, COORDINATOR_SERVICE_NAME, WSAT_PREFIX);
+    /**
+     * The WSAT Cordinator Port Name.
+     */
+    public String COORDINATOR_PORT_NAME = "CoordinatorPortType";
+    /**
+     * The WSAT Cordinator Port QName.
+     */
+    public QName COORDINATOR_PORT_QNAME = new QName(WSAT_NAMESPACE, COORDINATOR_PORT_NAME, WSAT_PREFIX);
+
+    /**
+     * The participant service name.
+     */
+    public String PARTICIPANT_SERVICE_NAME = "Participant" ;
+    /**
+     * The participant service qname.
+     */
+    public QName PARTICIPANT_SERVICE_QNAME = new QName(WSAT_NAMESPACE, PARTICIPANT_SERVICE_NAME, WSAT_PREFIX);
+    /**
+     * The WSAT Participant Port Name.
+     */
+    public String PARTICIPANT_PORT_NAME = "ParticipantPortType";
+    /**
+     * The WSAT Participant Port QName.
+     */
+    public QName PARTICIPANT_PORT_QNAME = new QName(WSAT_NAMESPACE, PARTICIPANT_PORT_NAME, WSAT_PREFIX);
+
+    /**
+     * The Prepare element.
+     */
+    public String WSAT_ELEMENT_PREPARE = "Prepare" ;
+    /**
+     * The Prepare QName.
+     */
+    public QName WSAT_ELEMENT_PREPARE_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_PREPARE, WSAT_PREFIX) ;
+    /**
+     * The Prepare Action.
+     */
+    public String WSAT_ACTION_PREPARE = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_PREPARE ;
+    /**
+     * The Prepared element.
+     */
+    public String WSAT_ELEMENT_PREPARED = "Prepared" ;
+    /**
+     * The Prepared QName.
+     */
+    public QName WSAT_ELEMENT_PREPARED_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_PREPARED, WSAT_PREFIX) ;
+    /**
+     * The Prepared Action.
+     */
+    public String WSAT_ACTION_PREPARED = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_PREPARED ;
+    /**
+     * The Aborted element.
+     */
+    public String WSAT_ELEMENT_ABORTED = "Aborted" ;
+    /**
+     * The Aborted QName.
+     */
+    public QName WSAT_ELEMENT_ABORTED_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_ABORTED, WSAT_PREFIX) ;
+    /**
+     * The Aborted Action.
+     */
+    public String WSAT_ACTION_ABORTED = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_ABORTED ;
+    /**
+     * The ReadOnly element.
+     */
+    public String WSAT_ELEMENT_READ_ONLY = "ReadOnly" ;
+    /**
+     * The ReadOnly QName.
+     */
+    public QName WSAT_ELEMENT_READ_ONLY_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_READ_ONLY, WSAT_PREFIX) ;
+    /**
+     * The ReadOnly Action.
+     */
+    public String WSAT_ACTION_READ_ONLY = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_READ_ONLY ;
+    /**
+     * The Commit element.
+     */
+    public String WSAT_ELEMENT_COMMIT = "Commit" ;
+    /**
+     * The Commit QName.
+     */
+    public QName WSAT_ELEMENT_COMMIT_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_COMMIT, WSAT_PREFIX) ;
+    /**
+     * The Commit Action.
+     */
+    public String WSAT_ACTION_COMMIT = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_COMMIT ;
+    /**
+     * The Rollback element.
+     */
+    public String WSAT_ELEMENT_ROLLBACK = "Rollback" ;
+    /**
+     * The Rollback QName.
+     */
+    public QName WSAT_ELEMENT_ROLLBACK_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_ROLLBACK, WSAT_PREFIX) ;
+    /**
+     * The Rollback Action.
+     */
+    public String WSAT_ACTION_ROLLBACK = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_ROLLBACK ;
+    /**
+     * The Committed element.
+     */
+    public String WSAT_ELEMENT_COMMITTED = "Committed" ;
+    /**
+     * The Committed QName.
+     */
+    public QName WSAT_ELEMENT_COMMITTED_QNAME = new QName(WSAT_NAMESPACE, WSAT_ELEMENT_COMMITTED, WSAT_PREFIX) ;
+    /**
+     * The Committed Action.
+     */
+    public String WSAT_ACTION_COMMITTED = WSAT_NAMESPACE + "/" + WSAT_ELEMENT_COMMITTED ;
+    /**
+     * The Fault Action.
+     */
+    public String WSAT_ACTION_FAULT = WSAT_NAMESPACE + "/fault" ;
+
+    /**
+     * The vote attribute.
+     */
+    public String WSAT_ATTRIBUTE_VOTE = "vote" ;
+    /**
+     * The vote QName.
+     */
+    public QName WSAT_ATTRIBUTE_VOTE_QNAME = new QName(WSAT_ATTRIBUTE_NAMESPACE, WSAT_ATTRIBUTE_VOTE, WSAT_ATTRIBUTE_PREFIX) ;
+    /**
+     * The outcome attribute.
+     */
+    public String WSAT_ATTRIBUTE_OUTCOME = "outcome" ;
+    /**
+     * The outcome QName.
+     */
+    public QName WSAT_ATTRIBUTE_OUTCOME_QNAME = new QName(WSAT_ATTRIBUTE_NAMESPACE, WSAT_ATTRIBUTE_OUTCOME, WSAT_ATTRIBUTE_PREFIX) ;
+
+    /**
+     * The InconsistentInternalState error code.
+     */
+    public String WSAT_ERROR_CODE_INCONSISTENT_INTERNAL_STATE = "InconsistentInternalState" ;
+    /**
+     * The InconsistentInternalState error code QName.
+     */
+    public QName WSAT_ERROR_CODE_INCONSISTENT_INTERNAL_STATE_QNAME = new QName(WSAT_NAMESPACE, WSAT_ERROR_CODE_INCONSISTENT_INTERNAL_STATE, WSAT_PREFIX) ;
+
+    /**
+     * The atomic transaction protocol.
+     */
+    public String WSAT_PROTOCOL = WSAT_NAMESPACE ;
+    /**
+     * The atomic transaction completion protocol.
+     */
+    public String WSAT_SUB_PROTOCOL_COMPLETION = WSAT_NAMESPACE + "/Completion" ;
+    /**
+     * The atomic transaction durable 2PC protocol.
+     */
+    public String WSAT_SUB_PROTOCOL_DURABLE_2PC = WSAT_NAMESPACE + "/Durable2PC" ;
+    /**
+     * The atomic transaction volatile 2PC protocol.
+     */
+    public String WSAT_SUB_PROTOCOL_VOLATILE_2PC = WSAT_NAMESPACE + "/Volatile2PC" ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/CoordinatorInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,61 @@
+package com.arjuna.webservices.wsat;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The Coordinator events.
+ */
+public interface CoordinatorInboundEventsWS
+{
+    /**
+     * Handle the aborted event.
+     * @param aborted The aborted notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void aborted(final Notification aborted, final AddressingProperties addressingContext, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the committed event.
+     * @param committed The committed notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void committed(final Notification committed, final AddressingProperties addressingContext, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the prepared event.
+     * @param prepared The prepared notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void prepared(final Notification prepared, final AddressingProperties addressingContext, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the readOnly event.
+     * @param readOnly The readOnly notification.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void readOnly(final Notification readOnly, final AddressingProperties addressingContext, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingContext, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Get the participant endpoint reference
+     * @return The participant endpoint reference
+     */
+    public W3CEndpointReference getParticipant();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/ParticipantInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+package com.arjuna.webservices.wsat;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantInboundEventsWS
+{
+    /**
+     * Handle the commit event.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void commit(final Notification commit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the prepare event.
+     * @param prepare The prepare notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void prepare(final Notification prepare, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the rollback event.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void rollback(final Notification rollback, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+    /**
+     * Return the endpoint reference for the coordinator associated with this participant.
+     * @return the coordinator endpoint reference
+     */
+    public W3CEndpointReference getCoordinator();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/StateWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/StateWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/StateWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,118 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsat;
+
+import java.text.MessageFormat;
+import java.util.Map;
+
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.Enumerated;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+
+/**
+ * Class representing AT state enumerations.
+ * @author kevin
+ */
+public class StateWS extends Enumerated
+{
+    /**
+     * The Active state.
+     */
+    public static final StateWS STATE_ACTIVE = new StateWS("Active") ;
+    /**
+     * The Preparing state.
+     */
+    public static final StateWS STATE_PREPARING = new StateWS("Preparing") ;
+    /**
+     * The Prepared state.
+     */
+    public static final StateWS STATE_PREPARED = new StateWS("Prepared") ;
+    /**
+     * The PreparedSuccess state.
+     */
+    public static final StateWS STATE_PREPARED_SUCCESS = new StateWS("PreparedSuccess") ;
+    /**
+     * The Committing state.
+     */
+    public static final StateWS STATE_COMMITTING = new StateWS("Committing") ;
+    /**
+     * The Aborting state.
+     */
+    public static final StateWS STATE_ABORTING = new StateWS("Aborting") ;
+
+    /**
+     * The map of enumerations.
+     */
+    private static final Map ENUM_MAP = generateMap(new Enumerated[] {
+        STATE_ACTIVE, STATE_PREPARING, STATE_PREPARED, STATE_PREPARED_SUCCESS,
+        STATE_COMMITTING, STATE_ABORTING
+    }) ;
+
+    /**
+     * Construct the state enumeration with the specified value.
+     * @param value The localName of the state enumeration.
+     */
+    private StateWS(final String value)
+    {
+        super(value) ;
+    }
+
+    /**
+     * Get the value of this enumeration.
+     * @return the value.
+     */
+    public String getValue()
+    {
+        return (String)getKey() ;
+    }
+
+    /**
+     * Resolve the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws com.arjuna.webservices.util.InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toStateWS((String)value) ;
+    }
+
+    /**
+     * Return the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws com.arjuna.webservices.util.InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.wsat.StateWS_1 [com.arjuna.webservices.wsat.StateWS_1] - Invalid fault type enumeration: {0}
+     */
+    public static StateWS toStateWS(final String value)
+        throws InvalidEnumerationException
+    {
+        final Object state = ENUM_MAP.get(value) ;
+        if (state == null)
+        {
+            final String pattern = WSTLogger.log_mesg.getString("com.arjuna.webservices.wsat.StateWS_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {value}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (StateWS)state ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionCoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,151 @@
+package com.arjuna.webservices.wsat.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Completion Coordinator.
+ * @author kevin
+ */
+public class CompletionCoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final CompletionCoordinatorClientWS CLIENT = new CompletionCoordinatorClientWS() ;
+
+    /**
+     * The commit action.
+     */
+    private AttributedURI commitAction = null;
+    /**
+     * The rollback action.
+     */
+    private AttributedURI rollbackAction = null;
+
+    /**
+     * The completion initiator URI for replies.
+     */
+    private AttributedURI completionInitiator ;
+
+    /**
+     * Construct the completion coordinator client.
+     */
+    private CompletionCoordinatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            commitAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_COMMIT);
+            rollbackAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_ROLLBACK);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String completionInitiatorURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COMPLETION_INITIATOR_SERVICE_NAME) ;
+        try {
+            completionInitiator = builder.newURI(completionInitiatorURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a commit request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCommit(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CompletionCoordinatorPortType port = getPort(endpoint, addressingProperties, commitAction);
+        Notification commit = new Notification();
+
+        port.commitOperation(commit);
+    }
+
+    /**
+     * Send a rollback request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendRollback(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CompletionCoordinatorPortType port = getPort(endpoint, addressingProperties, rollbackAction);
+        Notification rollback = new Notification();
+                
+        port.rollbackOperation(rollback);
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CompletionCoordinatorClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param endpoint
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private CompletionCoordinatorPortType getPort(final W3CEndpointReference endpoint,
+                                                  final AddressingProperties addressingProperties,
+                                                  final AttributedURI action)
+    {
+        CompletionCoordinatorPortType port = endpoint.getPort(CompletionCoordinatorPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CompletionInitiatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,170 @@
+package com.arjuna.webservices.wsat.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorPortType;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Completion Initiator.
+ * @author kevin
+ */
+public class CompletionInitiatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final CompletionInitiatorClientWS CLIENT = new CompletionInitiatorClientWS() ;
+
+    /**
+     * The committed action.
+     */
+    private AttributedURI committedAction = null;
+    /**
+     * The aborted action.
+     */
+    private AttributedURI abortedAction = null;
+    /**
+     * The fault action.
+     */
+    private AttributedURI faultAction = null;
+
+    /**
+     * The completion coordinator URI for replies.
+     */
+    private AttributedURI completionCoordinator ;
+
+    /**
+     * Construct the completion initiator client.
+     */
+    private CompletionInitiatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            committedAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_COMMITTED);
+            abortedAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_ABORTED);
+            faultAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_FAULT);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String completionCoordinatorURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COMPLETION_COORDINATOR_SERVICE_NAME) ;
+        try {
+            completionCoordinator = builder.newURI(completionCoordinatorURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a committed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCommitted(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CompletionInitiatorPortType port = getPort(participant, addressingProperties, committedAction);
+        Notification commited = new Notification();
+
+        port.committedOperation(commited);
+    }
+
+    /**
+     * Send an aborted request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendAborted(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CompletionInitiatorPortType port = getPort(participant, addressingProperties, abortedAction);
+        Notification aborted = new Notification();
+
+        port.abortedOperation(aborted);
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingProperties The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendSoapFault(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final SoapFault soapFault, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        // TODO - we only get here if we have no endpoitn so all we can do is log an error!
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CompletionInitiatorClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private CompletionInitiatorPortType getPort(final W3CEndpointReference participant,
+                                                final AddressingProperties addressingProperties,
+                                                final AttributedURI action)
+    {
+        CompletionInitiatorPortType port = participant.getPort(CompletionInitiatorPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/CoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,212 @@
+package com.arjuna.webservices.wsat.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Coordinator.
+ * @author kevin
+ */
+public class CoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorClientWS CLIENT = new CoordinatorClientWS() ;
+
+    /**
+     * The prepared action.
+     */
+    private AttributedURI preparedAction = null;
+    /**
+     * The aborted action.
+     */
+    private AttributedURI abortedAction = null;
+    /**
+     * The read only action.
+     */
+    private AttributedURI readOnlyAction = null;
+    /**
+     * The committed action.
+     */
+    private AttributedURI committedAction = null;
+    /**
+     * The fault action.
+     */
+    private AttributedURI faultAction = null;
+
+    /**
+     * The participant URI for replies.
+     */
+    private AttributedURI participant ;
+
+    /**
+     * Construct the coordinator client.
+     */
+    private CoordinatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            preparedAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_PREPARED);
+            abortedAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_ABORTED);
+            readOnlyAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_READ_ONLY);
+            committedAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_COMMITTED);
+            faultAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_FAULT);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String participantURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.PARTICIPANT_SERVICE_NAME);
+        try {
+            participant = builder.newURI(participantURI);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a prepared request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any SOAP errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendPrepared(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CoordinatorPortType port = getPort(endpoint, addressingProperties, preparedAction);
+        Notification prepared = new Notification();
+
+        port.preparedOperation(prepared);
+    }
+
+    /**
+     * Send an aborted request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any SOAP errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendAborted(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CoordinatorPortType port = getPort(endpoint, addressingProperties, abortedAction);
+        Notification aborted = new Notification();
+
+        port.abortedOperation(aborted);
+    }
+
+    /**
+     * Send a read only request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any SOAP errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendReadOnly(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CoordinatorPortType port = getPort(endpoint, addressingProperties, readOnlyAction);
+        Notification readOnly = new Notification();
+
+        port.readOnlyOperation(readOnly);
+    }
+
+    /**
+     * Send a committed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any SOAP errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCommitted(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        CoordinatorPortType port = getPort(endpoint, addressingProperties, committedAction);
+        Notification committed = new Notification();
+
+        port.committedOperation(committed);
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingProperties The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws com.arjuna.webservices.SoapFault For any SOAP errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendSoapFault(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final SoapFault soapFault, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        // TODO - we cannot do this without an endpoint so all we can do is log a message!
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private CoordinatorPortType getPort(final W3CEndpointReference participant,
+                                                final AddressingProperties addressingProperties,
+                                                final AttributedURI action)
+    {
+        CoordinatorPortType port = participant.getPort(CoordinatorPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/client/ParticipantClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,190 @@
+package com.arjuna.webservices.wsat.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantPortType;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Participant.
+ * @author kevin
+ */
+public class ParticipantClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantClientWS CLIENT = new ParticipantClientWS() ;
+
+    /**
+     * The prepare action.
+     */
+    private AttributedURI prepareAction = null;
+    /**
+     * The commit action.
+     */
+    private AttributedURI commitAction = null;
+    /**
+     * The rollback action.
+     */
+    private AttributedURI rollbackAction = null;
+    /**
+     * The SOAP fault action.
+     */
+    private AttributedURI faultAction;
+
+    /**
+     * The coordinator URI for replies.
+     */
+    private AttributedURI coordinator ;
+
+    /**
+     * Construct the completion initiator client.
+     */
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            prepareAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_PREPARE);
+            commitAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_COMMIT);
+            rollbackAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_ROLLBACK);
+            faultAction = builder.newURI(AtomicTransactionConstants.WSAT_ACTION_FAULT);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String coordinatorURI = ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COORDINATOR_SERVICE_NAME);
+        try {
+            coordinator = builder.newURI(coordinatorURI);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+
+    }
+
+    /**
+     * Send a prepare request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendPrepare(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        ParticipantPortType port = getPort(endpoint, addressingProperties, prepareAction);
+        Notification prepare = new Notification();
+
+        port.prepareOperation(prepare);
+    }
+
+    /**
+     * Send a commit request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCommit(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        ParticipantPortType port = getPort(endpoint, addressingProperties, commitAction);
+        Notification commit = new Notification();
+
+        port.commitOperation(commit);
+    }
+
+    /**
+     * Send a rollback request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendRollback(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        ParticipantPortType port = getPort(endpoint, addressingProperties, rollbackAction);
+        Notification rollback = new Notification();
+
+        port.rollbackOperation(rollback);
+    }
+
+    /**
+     * Send a fault.
+     * @param addressingProperties The addressing context.
+     * @param soapFault The SOAP fault.
+     * @param identifier The arjuna instance identifier.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendSoapFault(final W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final SoapFault soapFault, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        // TODO - we cannot do this without an ednpoint so all we can do is log an error message!
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private ParticipantPortType getPort(final W3CEndpointReference participant,
+                                                final AddressingProperties addressingProperties,
+                                                final AttributedURI action)
+    {
+        ParticipantPortType port = participant.getPort(ParticipantPortType.class, new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+package com.arjuna.webservices.wsat.processors;
+
+import com.arjuna.wst.CompletionCoordinatorParticipant;
+import com.arjuna.wst.CompletionCoordinatorParticipantWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import javax.xml.ws.addressing.AddressingProperties;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class CompletionCoordinatorProcessorWS
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CompletionCoordinatorProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized CompletionCoordinatorProcessorWS getProcessor()
+    {
+        return PROCESSOR;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CompletionCoordinatorProcessorWS setProcessor(final CompletionCoordinatorProcessorWS processor)
+    {
+        final CompletionCoordinatorProcessorWS origProcessor = PROCESSOR;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final CompletionCoordinatorParticipantWS participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final CompletionCoordinatorParticipantWS participant) ;
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void commit(final Notification commit, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void rollback(final Notification rollback, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallbackWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallbackWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorCallbackWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+package com.arjuna.webservices.wsat.processors;
+
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Completion Initiator callback.
+ * @author kevin
+ */
+public abstract class CompletionInitiatorCallbackWS extends Callback
+{
+    /**
+     * An aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void aborted(final Notification aborted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A committed response.
+     * @param committed The committed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void committed(final Notification committed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * A SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CompletionInitiatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,88 @@
+package com.arjuna.webservices.wsat.processors;
+
+import com.arjuna.webservices.wsarj.processor.BaseNotificationProcessorWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.base.processors.Callback;
+import com.arjuna.webservices.SoapFault;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Completion Initiator processor.
+ * @author kevin
+ */
+public class CompletionInitiatorProcessorWS extends BaseNotificationProcessorWS
+{
+    /**
+     * The initiator singleton.
+     */
+    private static final CompletionInitiatorProcessorWS PROCESSOR = new CompletionInitiatorProcessorWS() ;
+
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static CompletionInitiatorProcessorWS getProcessor()
+    {
+        return PROCESSOR;
+    }
+
+    /**
+     * Handle an aborted response.
+     * @param aborted The aborted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleAborted(final Notification aborted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallbackWS)callback).aborted(aborted, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a committed response.
+     * @param committed The committed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleCommitted(final Notification committed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallbackWS)callback).committed(committed, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Handle a SOAP fault response.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void handleSoapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        handleCallbacks(new CallbackExecutorAdapter() {
+            public void execute(final Callback callback) {
+                ((CompletionInitiatorCallbackWS)callback).soapFault(soapFault, addressingProperties, arjunaContext) ;
+            }
+        }, getIDs(addressingProperties, arjunaContext)) ;
+    }
+
+    /**
+     * Register a callback for the specific instance identifier.
+     * @param instanceIdentifier The instance identifier.
+     * @param callback The callback for the response.
+     */
+    public void registerCallback(final String instanceIdentifier, final CompletionInitiatorCallbackWS callback)
+    {
+        register(instanceIdentifier, callback) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/CoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,101 @@
+package com.arjuna.webservices.wsat.processors;
+
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsat.CoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The Coordinator processor.
+ * @author kevin
+ */
+public abstract class CoordinatorProcessorWS
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CoordinatorProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor singleton.
+     * @return The singleton.
+     */
+    public static synchronized CoordinatorProcessorWS getProcessor()
+    {
+        return PROCESSOR;
+    }
+
+    /**
+     * Set the processor singleton.
+     * @param processor The processor.
+     * @return The previous singleton.
+     */
+    public static synchronized CoordinatorProcessorWS setProcessor(final CoordinatorProcessorWS processor)
+    {
+        final CoordinatorProcessorWS origProcessor = PROCESSOR;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final CoordinatorInboundEventsWS coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final CoordinatorInboundEventsWS coordinator) ;
+
+    /**
+     * Aborted.
+     * @param aborted The aborted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void aborted(final Notification aborted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Committed.
+     * @param committed The committed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void committed(final Notification committed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Prepared.
+     * @param prepared The prepared notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void prepared(final Notification prepared, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Read only.
+     * @param readOnly The read only notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void readOnly(final Notification readOnly, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingContext The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingContext,
+        final ArjunaContextWS arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/processors/ParticipantProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,92 @@
+package com.arjuna.webservices.wsat.processors;
+
+import com.arjuna.webservices.wsat.ParticipantInboundEventsWS;
+import com.arjuna.webservices.wsat.NotificationType;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The Participant processor.
+ * @author kevin
+ */
+public abstract class ParticipantProcessorWS
+{
+    /**
+     * The participant processor.
+     */
+    private static ParticipantProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantProcessorWS getProcessor()
+    {
+        return PROCESSOR;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantProcessorWS setProcessor(final ParticipantProcessorWS processor)
+    {
+        final ParticipantProcessorWS origProcessor = PROCESSOR;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final ParticipantInboundEventsWS participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final ParticipantInboundEventsWS participant) ;
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void commit(final Notification commit, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Prepare.
+     * @param prepare The prepare notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void prepare(final Notification prepare, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void rollback(final Notification rollback, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP Fault.
+     * @param soapFault The SOAP fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionCoordinatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionCoordinatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionCoordinatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,85 @@
+package com.arjuna.webservices.wsat.sei;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorPortType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.soap.Addressing;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessorWS;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.services.framework.task.Task;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "CompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06",
+        wsdlLocation = "../wsdl/wsat-completion-coordinator-binding.wsdl",
+        serviceName = "CompletionCoordinatorService",
+        portName = "CompletionCoordinatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class CompletionCoordinatorPortTypeImpl implements CompletionCoordinatorPortType
+{
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification commit = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionCoordinatorProcessorWS.getProcessor().commit(commit, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification rollback = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionCoordinatorProcessorWS.getProcessor().rollback(rollback, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionInitiatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionInitiatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CompletionInitiatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,86 @@
+package com.arjuna.webservices.wsat.sei;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorPortType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessorWS;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.services.framework.task.Task;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "CompletionInitiatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06",
+        wsdlLocation = "../wsdl/wsat-completion-initiator-binding.wsdl",
+        serviceName = "CompletionInitiatorService",
+        portName = "CompletionInitiatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class CompletionInitiatorPortTypeImpl implements CompletionInitiatorPortType
+{
+
+    @Resource
+     private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification committed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionInitiatorProcessorWS.getProcessor().handleCommitted(committed, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification aborted = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CompletionInitiatorProcessorWS.getProcessor().handleAborted(aborted, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CoordinatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CoordinatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/CoordinatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,132 @@
+package com.arjuna.webservices.wsat.sei;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorPortType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessorWS;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.services.framework.task.Task;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "CoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06",
+        wsdlLocation = "../wsdl/wsat-coordinator-binding.wsdl",
+        serviceName = "CoordinatorService",
+        portName = "CoordinatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class CoordinatorPortTypeImpl implements CoordinatorPortType
+{
+
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "PreparedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared")
+    @Oneway
+    public void preparedOperation(
+        @WebParam(name = "Prepared", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification prepared = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessorWS.getProcessor().prepared(prepared, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification aborted = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessorWS.getProcessor().aborted(aborted, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ReadOnlyOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly")
+    @Oneway
+    public void readOnlyOperation(
+        @WebParam(name = "ReadOnly", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification readOnly = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessorWS.getProcessor().readOnly(readOnly, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification committed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorProcessorWS.getProcessor().committed(committed, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/ParticipantPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/ParticipantPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/sei/ParticipantPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,109 @@
+package com.arjuna.webservices.wsat.sei;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantPortType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessorWS;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.services.framework.task.Task;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "ParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06",
+        wsdlLocation = "../wsdl/wsat-participant-binding.wsdl",
+        serviceName = "ParticipantService",
+        portName = "ParticipantPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class ParticipantPortTypeImpl implements ParticipantPortType
+{
+
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "PrepareOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare")
+    @Oneway
+    public void prepareOperation(
+        @WebParam(name = "Prepare", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification prepare = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessorWS.getProcessor().prepare(prepare, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification commit = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessorWS.getProcessor().commit(commit, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final Notification rollback = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                ParticipantProcessorWS.getProcessor().rollback(rollback, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsat.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Completion Coordinator service
+ * @author kevin
+ */
+public class CompletionCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + AtomicTransactionWSConstants.COMPLETION_COORDINATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(AtomicTransactionWSConstants.COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CompletionInitiatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsat.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Completion Initiator service
+ * @author kevin
+ */
+public class CompletionInitiatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + AtomicTransactionWSConstants.COMPLETION_INITIATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(AtomicTransactionWSConstants.COMPLETION_INITIATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/CoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsat.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Coordinator service
+ * @author kevin
+ */
+public class CoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + AtomicTransactionWSConstants.COORDINATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(AtomicTransactionWSConstants.COORDINATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsat/server/ParticipantWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsat.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant service
+ * @author kevin
+ */
+public class ParticipantWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + AtomicTransactionWSConstants.PARTICIPANT_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(AtomicTransactionWSConstants.PARTICIPANT_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityWSConstants.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityWSConstants.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/BusinessActivityWSConstants.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,362 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface containing WS-BusinessActivity constants.
+ */
+public interface BusinessActivityWSConstants
+{
+    /**
+     * The Namespace.
+     */
+    public String WSBA_NAMESPACE = "http://docs.oasis-open.org/ws-tx/wsba/2006/06";
+    /**
+     * The namespace prefix.
+     */
+    public String WSBA_PREFIX = "wsba";
+
+    /**
+     * The WSBA Participant Completion Cordinator Service Name.
+     */
+    public String PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME = "BusinessAgreementWithParticipantCompletionCoordinatorService";
+    /**
+     * The WSBA Participant Completion Cordinator Service QName.
+     */
+    public QName PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_QNAME = new QName(WSBA_NAMESPACE, PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, WSBA_PREFIX);
+    /**
+     * The WSBA Participant Completion Cordinator Port Name.
+     */
+    public String PARTICIPANT_COMPLETION_COORDINATOR_PORT_NAME = "BusinessAgreementWithParticipantCompletionCoordinatorPortType";
+    /**
+     * The WSBA Participant Completion Cordinator Port QName.
+     */
+    public QName PARTICIPANT_COMPLETION_COORDINATOR_PORT_QNAME = new QName(WSBA_NAMESPACE, PARTICIPANT_COMPLETION_COORDINATOR_PORT_NAME, WSBA_PREFIX);
+
+    /**
+     * The WSBA Participant Completion Participant Service Name.
+     */
+    public String PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME = "BusinessAgreementWithParticipantCompletionParticipantService";
+    /**
+     * The WSBA Participant Completion Participant Service QName.
+     */
+    public QName PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_QNAME = new QName(WSBA_NAMESPACE, PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, WSBA_PREFIX);
+    /**
+     * The WSBA Participant Completion Participant Port Name.
+     */
+    public String PARTICIPANT_COMPLETION_PARTICIPANT_PORT_NAME = "BusinessAgreementWithParticipantCompletionParticipantPortType";
+    /**
+     * The WSBA Participant Completion Participant Port QName.
+     */
+    public QName PARTICIPANT_COMPLETION_PARTICIPANT_PORT_QNAME = new QName(WSBA_NAMESPACE, PARTICIPANT_COMPLETION_PARTICIPANT_PORT_NAME, WSBA_PREFIX);
+
+    /**
+     * The WSBA Coordinator Completion Coordinator Service Name.
+     */
+    public String COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME = "BusinessAgreementWithCoordinatorCompletionCoordinatorService";
+    /**
+     * The WSBA Coordinator Completion Coordinator Service QName.
+     */
+    public QName COORDINATOR_COMPLETION_COORDINATOR_SERVICE_QNAME = new QName(WSBA_NAMESPACE, COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, WSBA_PREFIX);
+    /**
+     * The WSBA Coordinator Completion Coordinator Port Name.
+     */
+    public String COORDINATOR_COMPLETION_COORDINATOR_PORT_NAME = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType";
+    /**
+     * The WSBA Coordinator Completion Coordinator Port QName.
+     */
+    public QName COORDINATOR_COMPLETION_COORDINATOR_PORT_QNAME = new QName(WSBA_NAMESPACE, COORDINATOR_COMPLETION_COORDINATOR_PORT_NAME, WSBA_PREFIX);
+
+    /**
+     * The WSBA Coordinator Completion Participant Service Name.
+     */
+    public String COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME = "BusinessAgreementWithCoordinatorCompletionParticipantService";
+    /**
+     * The WSBA Coordinator Completion Participant Service QName.
+     */
+    public QName COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_QNAME = new QName(WSBA_NAMESPACE, COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, WSBA_PREFIX);
+    /**
+     * The WSBA Cordinator Completion Participant Port Name.
+     */
+    public String COORDINATOR_COMPLETION_PARTICIPANT_PORT_NAME = "BusinessAgreementWithCoordinatorCompletionParticipantPortType";
+    /**
+     * The WSBA Cordinator Completion Participant Port QName.
+     */
+    public QName COORDINATOR_COMPLETION_PARTICIPANT_PORT_QNAME = new QName(WSBA_NAMESPACE, COORDINATOR_COMPLETION_PARTICIPANT_PORT_NAME, WSBA_PREFIX);
+
+    /* extra ops for 1.1. protocol*/
+
+    /**
+     * The Fail element.
+     */
+    public String WSBA_ELEMENT_FAIL = "Fail" ;
+    /**
+     * The Fail QName.
+     */
+    public QName WSBA_ELEMENT_FAIL_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_FAIL, WSBA_PREFIX) ;
+    /**
+     * The Fail Action.
+     */
+    public String WSBA_ACTION_FAIL = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_FAIL ;
+
+    /**
+     * The ExceptionIdentifier element.
+     */
+    public String WSBA_ELEMENT_EXCEPTION_IDENTIFIER = "ExceptionIdentifier" ;
+    /**
+     * The ExceptionIdentifier QName.
+     */
+    public QName WSBA_ELEMENT_EXCEPTION_IDENTIFIER_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_EXCEPTION_IDENTIFIER, WSBA_PREFIX) ;
+    /**
+     * The Canceled element.
+     */
+    public String WSBA_ELEMENT_CANCELLED = "Canceled" ;
+    /**
+     * The Canceled QName.
+     */
+    public QName WSBA_ELEMENT_CANCELLED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_CANCELLED, WSBA_PREFIX) ;
+    /**
+     * The Canceled Action.
+     */
+    public String WSBA_ACTION_CANCELLED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_CANCELLED ;
+    /**
+     * The Closed element.
+     */
+    public String WSBA_ELEMENT_CLOSED = "Closed" ;
+    /**
+     * The Closed QName.
+     */
+    public QName WSBA_ELEMENT_CLOSED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_CLOSED, WSBA_PREFIX) ;
+    /**
+     * The Closed Action.
+     */
+    public String WSBA_ACTION_CLOSED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_CLOSED ;
+    /**
+     * The Compensated element.
+     */
+    public String WSBA_ELEMENT_COMPENSATED = "Compensated" ;
+    /**
+     * The Compensated QName.
+     */
+    public QName WSBA_ELEMENT_COMPENSATED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_COMPENSATED, WSBA_PREFIX) ;
+    /**
+     * The Compensated Action.
+     */
+    public String WSBA_ACTION_COMPENSATED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_COMPENSATED ;
+    /**
+     * The Completed element.
+     */
+    public String WSBA_ELEMENT_COMPLETED = "Completed" ;
+    /**
+     * The Completed QName.
+     */
+    public QName WSBA_ELEMENT_COMPLETED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_COMPLETED, WSBA_PREFIX) ;
+    /**
+     * The Completed Action.
+     */
+    public String WSBA_ACTION_COMPLETED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_COMPLETED ;
+    /**
+     * The Exit element.
+     */
+    public String WSBA_ELEMENT_EXIT = "Exit" ;
+    /**
+     * The Exit QName.
+     */
+    public QName WSBA_ELEMENT_EXIT_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_EXIT, WSBA_PREFIX) ;
+    /**
+     * The Exit Action.
+     */
+    public String WSBA_ACTION_EXIT = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_EXIT ;
+    /**
+     * The Fault element.
+     */
+    public String WSBA_ELEMENT_FAULT = "Fault" ;
+    /**
+     * The Fault QName.
+     */
+    public QName WSBA_ELEMENT_FAULT_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_FAULT, WSBA_PREFIX) ;
+    /**
+     * The Fault Action.
+     */
+    public String WSBA_ACTION_FAULT = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_FAULT ;
+    /**
+     * The Cancel element.
+     */
+    public String WSBA_ELEMENT_CANCEL = "Cancel" ;
+    /**
+     * The Cancel QName.
+     */
+    public QName WSBA_ELEMENT_CANCEL_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_CANCEL, WSBA_PREFIX) ;
+    /**
+     * The Cancel Action.
+     */
+    public String WSBA_ACTION_CANCEL = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_CANCEL ;
+    /**
+     * The Close element.
+     */
+    public String WSBA_ELEMENT_CLOSE = "Close" ;
+    /**
+     * The Close QName.
+     */
+    public QName WSBA_ELEMENT_CLOSE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_CLOSE, WSBA_PREFIX) ;
+    /**
+     * The Close Action.
+     */
+    public String WSBA_ACTION_CLOSE = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_CLOSE ;
+    /**
+     * The Compensate element.
+     */
+    public String WSBA_ELEMENT_COMPENSATE = "Compensate" ;
+    /**
+     * The Compensate QName.
+     */
+    public QName WSBA_ELEMENT_COMPENSATE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_COMPENSATE, WSBA_PREFIX) ;
+    /**
+     * The Compensate Action.
+     */
+    public String WSBA_ACTION_COMPENSATE = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_COMPENSATE ;
+    /**
+     * The Complete element.
+     */
+    public String WSBA_ELEMENT_COMPLETE = "Complete" ;
+    /**
+     * The Complete QName.
+     */
+    public QName WSBA_ELEMENT_COMPLETE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_COMPLETE, WSBA_PREFIX) ;
+    /**
+     * The Complete Action.
+     */
+    public String WSBA_ACTION_COMPLETE = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_COMPLETE ;
+    /**
+     * The CannotComplete element.
+     */
+    public String WSBA_ELEMENT_CANNOT_COMPLETE = "CannotComplete" ;
+    /**
+     * The CannotComplete QName.
+     */
+    public QName WSBA_ELEMENT_CANNOT_COMPLETE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_CANNOT_COMPLETE, WSBA_PREFIX) ;
+    /**
+     * The CannotComplete Action.
+     */
+    public String WSBA_ACTION_CANNOT_COMPLETE = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_CANNOT_COMPLETE ;
+
+    /**
+     * The Failed element.
+     */
+    public String WSBA_ELEMENT_FAILED = "Failed" ;
+    /**
+     * The Failed QName.
+     */
+    public QName WSBA_ELEMENT_FAILED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_FAILED, WSBA_PREFIX) ;
+    /**
+     * The Failed Action.
+     */
+    public String WSBA_ACTION_FAILED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_FAILED ;
+
+    /**
+     * The NotCompleted element.
+     */
+    public String WSBA_ELEMENT_NOT_COMPLETED = "NotCompleted" ;
+    /**
+     * The NotCompleted QName.
+     */
+    public QName WSBA_ELEMENT_NOT_COMPLETED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_NOT_COMPLETED, WSBA_PREFIX) ;
+    /**
+     * The NotCompleted Action.
+     */
+    public String WSBA_ACTION_NOT_COMPLETED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_NOT_COMPLETED ;
+    /**
+     * The Exited element.
+     */
+    public String WSBA_ELEMENT_EXITED = "Exited" ;
+    /**
+     * The Exited QName.
+     */
+    public QName WSBA_ELEMENT_EXITED_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_EXITED, WSBA_PREFIX) ;
+    /**
+     * The Exited Action.
+     */
+    public String WSBA_ACTION_EXITED = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_EXITED ;
+    /**
+     * The GetStatus element.
+     */
+    public String WSBA_ELEMENT_GET_STATUS = "GetStatus" ;
+    /**
+     * The GetStatus QName.
+     */
+    public QName WSBA_ELEMENT_GET_STATUS_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_GET_STATUS, WSBA_PREFIX) ;
+    /**
+     * The GetStatus Action.
+     */
+    public String WSBA_ACTION_GET_STATUS = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_GET_STATUS ;
+    /**
+     * The State element.
+     */
+    public String WSBA_ELEMENT_STATE = "State" ;
+    /**
+     * The State QName.
+     */
+    public QName WSBA_ELEMENT_STATE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_STATE, WSBA_PREFIX) ;
+    /**
+     * The State Action.
+     */
+    public String WSBA_ACTION_STATE = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_STATE ;
+    /**
+     * The Status element.
+     */
+    public String WSBA_ELEMENT_STATUS = "Status" ;
+    /**
+     * The Status QName.
+     */
+    public QName WSBA_ELEMENT_STATUS_QNAME = new QName(WSBA_NAMESPACE, WSBA_ELEMENT_STATUS, WSBA_PREFIX) ;
+    /**
+     * The Status Action.
+     */
+    public String WSBA_ACTION_STATUS = WSBA_NAMESPACE + "/" + WSBA_ELEMENT_STATUS ;
+
+    /**
+     * The InconsistentInternalState error code.
+     */
+    public String WSBA_ERROR_CODE_INCONSISTENT_INTERNAL_STATE = "InconsistentInternalState" ;
+    /**
+     * The InconsistentInternalState error code QName.
+     */
+    public QName WSBA_ERROR_CODE_INCONSISTENT_INTERNAL_STATE_QNAME = new QName(WSBA_NAMESPACE, WSBA_ERROR_CODE_INCONSISTENT_INTERNAL_STATE, WSBA_PREFIX) ;
+
+    /**
+     * The business activity atomic outcome protocol.
+     */
+    public String WSBA_PROTOCOL_ATOMIC_OUTCOME = WSBA_NAMESPACE + "/AtomicOutcome" ;
+    /**
+     * The business activity mixed outcome protocol.
+     */
+    public String WSBA_PROTOCOL_MIXED_OUTCOME = WSBA_NAMESPACE + "/MixedOutcome" ;
+    /**
+     * The participant completion protocol.
+     */
+    public String WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION = WSBA_NAMESPACE + "/ParticipantCompletion" ;
+    /**
+     * The coordinator completion protocol.
+     */
+    public String WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION = WSBA_NAMESPACE + "/CoordinatorCompletion" ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionCoordinatorInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant events.
+ */
+public interface CoordinatorCompletionCoordinatorInboundEventsWS
+{
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the fail event.
+     * @param fail The fail exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the cannotComplete event.
+     * @param cannotComplete The cannotComplete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/CoordinatorCompletionParticipantInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+
+/**
+ * The Participant events.
+ */
+public interface CoordinatorCompletionParticipantInboundEventsWS
+{
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the complete event.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void complete(final NotificationType complete, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the failed event.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void failed(final NotificationType failed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the not completed event.
+     * @param notCompleted The not completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void notCompleted(final NotificationType notCompleted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionCoordinatorInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantCompletionCoordinatorInboundEventsWS
+{
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the fail event.
+     * @param fail The fail exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the cannotComplete event.
+     * @param cannotComplete The cannotComplete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEventsWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEventsWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/ParticipantCompletionParticipantInboundEventsWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant events.
+ */
+public interface ParticipantCompletionParticipantInboundEventsWS
+{
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the failed event.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void failed(final NotificationType failed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the not completed event.
+     * @param notCompleted The not completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void notCompleted(final NotificationType notCompleted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/StateWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,208 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba;
+
+import java.text.MessageFormat;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.Enumerated;
+import com.arjuna.webservices.util.InvalidEnumerationException;
+
+/*
+ * <xsd:simpleType name="StateType">
+ *   <xsd:restriction base="xsd:QName">
+ *     <xsd:enumeration value="wsba:Active"/>
+ *     <xsd:enumeration value="wsba:Canceling"/>
+ *     <xsd:enumeration value="wsba:Canceling-Active"/>
+ *     <xsd:enumeration value="wsba:Canceling-Completing"/>
+ *     <xsd:enumeration value="wsba:Completing"/>
+ *     <xsd:enumeration value="wsba:Completed"/>
+ *     <xsd:enumeration value="wsba:Closing"/>
+ *     <xsd:enumeration value="wsba:Compensating"/>
+ *     <xsd:enumeration value="wsba:Failing-Active"/>
+ *     <xsd:enumeration value="wsba:Failing-Canceling"/>
+ *     <xsd:enumeration value="wsba:Failing-Completing"/>
+ *     <xsd:enumeration value="wsba:Failing-Compensating"/>
+ *     <xsd:enumeration value="wsba:NotCompleting"/>
+ *     <xsd:enumeration value="wsba:Exiting"/>
+ *     <xsd:enumeration value="wsba:Ended"/>
+ *   </xsd:restriction>
+ * </xsd:simpleType>
+ */
+/**
+ * Class representing state enumerations.
+ * @author kevin
+ */
+public class StateWS extends Enumerated
+{
+    /**
+     * Serial version UID for serialisation.
+     */
+
+    /**
+     * The Active state.
+     */
+    public static final StateWS STATE_ACTIVE = new StateWS("Active") ;
+    /**
+     * The Canceling state.
+     */
+    public static final StateWS STATE_CANCELING = new StateWS("Canceling") ;
+    /**
+     * The Canceling-Active state.
+     */
+    public static final StateWS STATE_CANCELING_ACTIVE = new StateWS("Canceling-Active") ;
+    /**
+     * The Canceling-Completing state.
+     */
+    public static final StateWS STATE_CANCELING_COMPLETING = new StateWS("Canceling-Completing") ;
+    /**
+     * The Completing state.
+     */
+    public static final StateWS STATE_COMPLETING = new StateWS("Completing") ;
+    /**
+     * The Completed state.
+     */
+    public static final StateWS STATE_COMPLETED = new StateWS("Completed") ;
+    /**
+     * The Closing state.
+     */
+    public static final StateWS STATE_CLOSING = new StateWS("Closing") ;
+    /**
+     * The Compensating state.
+     */
+    public static final StateWS STATE_COMPENSATING = new StateWS("Compensating") ;
+    /**
+     * The Failing-Active state.
+     */
+    public static final StateWS STATE_FAILING_ACTIVE = new StateWS("Failing-Active") ;
+    /**
+     * The Failing-Canceling state.
+     */
+    public static final StateWS STATE_FAILING_CANCELING = new StateWS("Failing-Canceling") ;
+    /**
+     * The Failing-Completing state.
+     */
+    public static final StateWS STATE_FAILING_COMPLETING = new StateWS("Failing-Completing") ;
+    /**
+     * The Failing-Compensating state.
+     */
+    public static final StateWS STATE_FAILING_COMPENSATING = new StateWS("Failing-Compensating") ;
+    /**
+     * The Exiting state.
+     */
+    public static final StateWS STATE_EXITING = new StateWS("Exiting") ;
+    /**
+     * The NotCompleting state.
+     */
+    public static final StateWS STATE_NOT_COMPLETING = new StateWS("NotCompleting") ;
+
+    /**
+     * The Ended state.
+     */
+    public static final StateWS STATE_ENDED = new StateWS("Ended") ;
+
+    /**
+     * The map of enumerations.
+     */
+    private static final Map ENUM_MAP = generateMap(new Enumerated[] {
+        STATE_ACTIVE, STATE_CANCELING, STATE_CANCELING_ACTIVE,
+        STATE_CANCELING_COMPLETING, STATE_COMPLETING, STATE_COMPLETED,
+        STATE_CLOSING, STATE_COMPENSATING, STATE_FAILING_ACTIVE, STATE_FAILING_CANCELING,
+        STATE_FAILING_COMPLETING, STATE_FAILING_COMPENSATING, STATE_EXITING,
+        STATE_NOT_COMPLETING, STATE_ENDED
+    }) ;
+
+    /**
+     * Construct the state enumeration with the specified value.
+     * @param value The localName of the state enumeration.
+     */
+    private StateWS(final String value)
+    {
+        super(getQualifiedName(value)) ;
+    }
+
+    /**
+     * Get the value of this enumeration.
+     * @return the value.
+     */
+    public QName getValue()
+    {
+        return (QName)getKey() ;
+    }
+
+    /**
+     * Resolve the enumeration for the specified value.
+     * @param value The value.
+     * @return The enumeration.
+     * @throws com.arjuna.webservices.util.InvalidEnumerationException if the value is not valid.
+     */
+    protected Enumerated resolveEnum(final Object value)
+        throws InvalidEnumerationException
+    {
+        return toStateWS((QName)value) ;
+    }
+
+    /**
+     * Return the enumeration for the specified value.
+     * @param name The name.
+     * @return The enumeration.
+     * @throws com.arjuna.webservices.util.InvalidEnumerationException if the name is not valid.
+     */
+    public static StateWS toStateWS(final String name)
+        throws InvalidEnumerationException
+    {
+        return toStateWS(getQualifiedName(name)) ;
+    }
+
+    /**
+     * Return the enumeration for the specified value.
+     * @param qName The qName value.
+     * @return The enumeration.
+     * @throws com.arjuna.webservices.util.InvalidEnumerationException if the value is not valid.
+     * @message com.arjuna.webservices.wsba.StateWS_1 [com.arjuna.webservices.wsba.StateWS_1] - Invalid state enumeration: {0}
+     */
+    public static StateWS toStateWS(final QName qName)
+        throws InvalidEnumerationException
+    {
+        final Object state = ENUM_MAP.get(qName) ;
+        if (state == null)
+        {
+            final String pattern = WSTLogger.log_mesg.getString("com.arjuna.webservices.wsba.StateWS_1") ;
+            final String message = MessageFormat.format(pattern, new Object[] {qName}) ;
+            throw new InvalidEnumerationException(message) ;
+        }
+        return (StateWS)state ;
+    }
+
+    /**
+     * Get the qualified name.
+     * @param name The name to qualify.
+     * @return The qualified name.
+     */
+    private static QName getQualifiedName(final String name)
+    {
+        return new QName(BusinessActivityConstants.WSBA_NAMESPACE,
+                name, BusinessActivityConstants.WSBA_PREFIX) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionCoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,335 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Coordinator Completion Coordinator.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorCompletionCoordinatorClientWS CLIENT = new CoordinatorCompletionCoordinatorClientWS() ;
+
+    /**
+     * The completed action.
+     */
+    private AttributedURI completedAction = null;
+    /**
+     * The fault action.
+     */
+    private AttributedURI failAction = null;
+    /**
+     * The compensated action.
+     */
+    private AttributedURI compensatedAction = null;
+    /**
+     * The closed action.
+     */
+    private AttributedURI closedAction = null;
+    /**
+     * The cancelled action.
+     */
+    private AttributedURI cancelledAction = null;
+    /**
+     * The exit action.
+     */
+    private AttributedURI cannotCompleteAction = null;
+    /**
+     * The exit action.
+     */
+    private AttributedURI exitAction = null;
+    /**
+     * The get status action.
+     */
+    private AttributedURI getStatusAction = null;
+    /**
+     * The status action.
+     */
+    private AttributedURI statusAction = null;
+
+    /**
+     * The coordinator completion participant URI for replies.
+     */
+    private AttributedURI coordinatorCompletionParticipant = null;
+
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private CoordinatorCompletionCoordinatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            completedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPLETED);
+            failAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_FAIL);
+            compensatedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPENSATED);
+            closedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CLOSED);
+            cancelledAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CANCELLED);
+            exitAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_EXIT);
+            cannotCompleteAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_CANNOT_COMPLETE);
+            getStatusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_GET_STATUS);
+            statusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_STATUS);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        //final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        //AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        //ClientPolicy.register(handlerRegistry) ;
+
+        final String coordinatorCompletionParticipantURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME) ;
+        try {
+            coordinatorCompletionParticipant = builder.newURI(coordinatorCompletionParticipantURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a completed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompleted(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, completedAction);
+        NotificationType completed = new NotificationType();
+
+        port.completedOperation(completed);
+    }
+
+    /**
+     * Send a fail request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendFail(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName exceptionIdentifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, failAction);
+        ExceptionType fail = new ExceptionType();
+        fail.setExceptionIdentifier(exceptionIdentifier);
+
+        port.failOperation(fail);
+    }
+
+    /**
+     * Send a compensated request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompensated(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, compensatedAction);
+        NotificationType compensated = new NotificationType();
+
+        port.compensatedOperation(compensated);
+    }
+
+    /**
+     * Send a closed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClosed(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, closedAction);
+        NotificationType closed = new NotificationType();
+
+        port.closedOperation(closed);
+    }
+
+    /**
+     * Send a cancelled request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancelled(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, cancelledAction);
+        NotificationType camcelled = new NotificationType();
+
+        port.canceledOperation(camcelled);
+    }
+
+    /**
+     * Send an exit request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendExit(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, exitAction);
+        NotificationType exited = new NotificationType();
+
+        port.exitOperation(exited);
+    }
+
+    /**
+     * Send a cannot complete request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCannotComplete(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, cannotCompleteAction);
+        NotificationType cannotComplete = new NotificationType();
+
+        port.cannotComplete(cannotComplete);
+    }
+
+    /**
+     * Send a get status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendGetStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, getStatusAction);
+        NotificationType getStatus = new NotificationType();
+
+        port.getStatusOperation(getStatus);
+    }
+
+    /**
+     * Send a status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName state)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, statusAction);
+        StatusType status = new StatusType();
+        status.setState(state);
+
+        port.statusOperation(status);
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorCompletionCoordinatorClientWS getClient()
+    {
+        return CLIENT ;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private BusinessAgreementWithCoordinatorCompletionCoordinatorPortType
+    getPort(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final AttributedURI action)
+    {
+        BusinessAgreementWithCoordinatorCompletionCoordinatorPortType port;
+        port = participant.getPort(BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class,
+                new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/CoordinatorCompletionParticipantClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,332 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Coordinator Participant Coordinator.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final CoordinatorCompletionParticipantClientWS CLIENT = new CoordinatorCompletionParticipantClientWS() ;
+
+    /**
+     * The complete action.
+     */
+    private AttributedURI completeAction = null;
+    /**
+     * The close action.
+     */
+    private AttributedURI closeAction = null;
+    /**
+     * The cancel action.
+     */
+    private AttributedURI cancelAction = null;
+    /**
+     * The compensat action.
+     */
+    private AttributedURI compensateAction = null;
+    /**
+     * The faulted action.
+     */
+    private AttributedURI failedAction = null;
+    /**
+     * The exited action.
+     */
+    private AttributedURI exitedAction = null;
+    /**
+     * The not completed action.
+     */
+    private AttributedURI notCompletedAction = null;
+    /**
+     * The get status action.
+     */
+    private AttributedURI getStatusAction = null;
+    /**
+     * The status action.
+     */
+    private AttributedURI statusAction = null;
+
+    /**
+     * The coordinator completion coordinator URI for replies.
+     */
+    private AttributedURI coordinatorCompletionCoordinator = null;
+
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private CoordinatorCompletionParticipantClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            completeAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPLETE);
+            closeAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CLOSE);
+            cancelAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CANCEL);
+            compensateAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPENSATE);
+            failedAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_FAILED);
+            exitedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_EXITED);
+            notCompletedAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_NOT_COMPLETED);
+            getStatusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_GET_STATUS);
+            statusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_STATUS);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String coordinatorCompletionCoordinatorURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME) ;
+        try {
+            coordinatorCompletionCoordinator = builder.newURI(coordinatorCompletionCoordinatorURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a complete request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendComplete(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, completeAction);
+        NotificationType complete = new NotificationType();
+
+        port.completeOperation(complete);
+    }
+
+    /**
+     * Send a close request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClose(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, closeAction);
+        NotificationType close = new NotificationType();
+
+        port.closeOperation(close);
+    }
+
+    /**
+     * Send a cancel request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancel(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, cancelAction);
+        NotificationType cancel = new NotificationType();
+
+        port.cancelOperation(cancel);
+    }
+
+    /**
+     * Send a compensate request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompensate(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, compensateAction);
+        NotificationType compensate = new NotificationType();
+
+        port.compensateOperation(compensate);
+    }
+
+    /**
+     * Send a failed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendFailed(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, failedAction);
+        NotificationType failed = new NotificationType();
+
+        port.failedOperation(failed);
+    }
+
+    /**
+     * Send an exited request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendExited(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, exitedAction);
+        NotificationType exit = new NotificationType();
+
+        port.exitedOperation(exit);
+    }
+
+    /**
+     * Send an exited request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendNotCompleted(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, notCompletedAction);
+        NotificationType notCompleted = new NotificationType();
+
+        port.notCompleted(notCompleted);
+    }
+
+    /**
+     * Send a get status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendGetStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, getStatusAction);
+        NotificationType getStatus = new NotificationType();
+
+        port.getStatusOperation(getStatus);
+    }
+
+    /**
+     * Send a status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName state)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, statusAction);
+        StatusType status = new StatusType();
+        status.setState(state);
+
+        port.statusOperation(status);
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static CoordinatorCompletionParticipantClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private BusinessAgreementWithCoordinatorCompletionParticipantPortType
+    getPort(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final AttributedURI action)
+    {
+        BusinessAgreementWithCoordinatorCompletionParticipantPortType port;
+        port = participant.getPort(BusinessAgreementWithCoordinatorCompletionParticipantPortType.class,
+                new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionCoordinatorClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,335 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Participant Completion Coordinator.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantCompletionCoordinatorClientWS CLIENT = new ParticipantCompletionCoordinatorClientWS() ;
+
+    /**
+     * The completed action.
+     */
+    private AttributedURI completedAction = null;
+    /**
+     * The fault action.
+     */
+    private AttributedURI failAction = null;
+    /**
+     * The compensated action.
+     */
+    private AttributedURI compensatedAction = null;
+    /**
+     * The closed action.
+     */
+    private AttributedURI closedAction = null;
+    /**
+     * The cancelled action.
+     */
+    private AttributedURI cancelledAction = null;
+    /**
+     * The exit action.
+     */
+    private AttributedURI exitAction = null;
+    /**
+     * The cannot complete action.
+     */
+    private AttributedURI cannotCompleteAction = null;
+    /**
+     * The get status action.
+     */
+    private AttributedURI getStatusAction = null;
+    /**
+     * The status action.
+     */
+    private AttributedURI statusAction = null;
+
+    /**
+     * The participant completion participant URI for replies.
+     */
+    private AttributedURI participantCompletionParticipant = null;
+
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private ParticipantCompletionCoordinatorClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            completedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPLETED);
+            failAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_FAIL);
+            compensatedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPENSATED);
+            closedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CLOSED);
+            cancelledAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CANCELLED);
+            exitAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_EXIT);
+            cannotCompleteAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_CANNOT_COMPLETE);
+            getStatusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_GET_STATUS);
+            statusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_STATUS);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String participantCompletionParticipantURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME) ;
+        try {
+            participantCompletionParticipant = builder.newURI(participantCompletionParticipantURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a completed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompleted(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, completedAction);
+        NotificationType completed = new NotificationType();
+
+        port.completedOperation(completed);
+    }
+
+    /**
+     * Send a fault request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendFail(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName exceptionIdentifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, failAction);
+        ExceptionType fail = new ExceptionType();
+        fail.setExceptionIdentifier(exceptionIdentifier);
+
+        port.failOperation(fail);
+    }
+
+    /**
+     * Send a compensated request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompensated(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, compensatedAction);
+        NotificationType compensated = new NotificationType();
+
+        port.compensatedOperation(compensated);
+    }
+
+    /**
+     * Send a closed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClosed(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, closedAction);
+        NotificationType closed = new NotificationType();
+
+        port.closedOperation(closed);
+    }
+
+    /**
+     * Send a cancelled request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancelled(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, cancelledAction);
+        NotificationType cancelled = new NotificationType();
+
+        port.canceledOperation(cancelled);
+    }
+
+    /**
+     * Send an exit request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendExit(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, exitAction);
+        NotificationType exit = new NotificationType();
+
+        port.exitOperation(exit);
+    }
+
+    /**
+     * Send a cannot complete request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCannotComplete(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, cannotCompleteAction);
+        NotificationType cannotComplete = new NotificationType();
+
+        port.cannotComplete(cannotComplete);
+    }
+
+    /**
+     * Send a get status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendGetStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, getStatusAction);
+        NotificationType getStatus = new NotificationType();
+
+        port.getStatusOperation(getStatus);
+    }
+
+    /**
+     * Send a status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName state)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = getPort(endpoint, addressingProperties, statusAction);
+        StatusType status = new StatusType();
+        status.setState(state);
+
+        port.statusOperation(status);
+    }
+
+    /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantCompletionCoordinatorClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private BusinessAgreementWithParticipantCompletionCoordinatorPortType
+    getPort(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final AttributedURI action)
+    {
+        BusinessAgreementWithParticipantCompletionCoordinatorPortType port;
+        port = participant.getPort(BusinessAgreementWithParticipantCompletionCoordinatorPortType.class,
+                new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClientWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClientWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/client/ParticipantCompletionParticipantClientWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,310 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.client;
+
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.handler.InstanceIdentifierHandlerWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The Client side of the Participant Participant Coordinator.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantClientWS
+{
+    /**
+     * The client singleton.
+     */
+    private static final ParticipantCompletionParticipantClientWS CLIENT = new ParticipantCompletionParticipantClientWS() ;
+
+    /**
+     * The close action.
+     */
+    private AttributedURI closeAction = null;
+    /**
+     * The cancel action.
+     */
+    private AttributedURI cancelAction = null;
+    /**
+     * The compensat action.
+     */
+    private AttributedURI compensateAction = null;
+    /**
+     * The failed action.
+     */
+    private AttributedURI failedAction = null;
+    /**
+     * The exited action.
+     */
+    private AttributedURI exitedAction = null;
+    /**
+     * The not completed action.
+     */
+    private AttributedURI notCompletedAction = null;
+    /**
+     * The get status action.
+     */
+    private AttributedURI getStatusAction = null;
+    /**
+     * The status action.
+     */
+    private AttributedURI statusAction = null;
+
+    /**
+     * The participant completion coordinator URI for replies.
+     */
+    private AttributedURI participantCompletionCoordinator = null;
+
+    /**
+     * Construct the participant completion coordinator client.
+     */
+    private ParticipantCompletionParticipantClientWS()
+    {
+        final AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+        try {
+            closeAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CLOSE);
+            cancelAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_CANCEL);
+            compensateAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_COMPENSATE);
+            failedAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_FAILED);
+            exitedAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_EXITED);
+            notCompletedAction = builder.newURI(BusinessActivityWSConstants.WSBA_ACTION_NOT_COMPLETED);
+            getStatusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_GET_STATUS);
+            statusAction = builder.newURI(BusinessActivityConstants.WSBA_ACTION_STATUS);
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+        // final HandlerRegistry handlerRegistry = new HandlerRegistry() ;
+
+        // Add WS-Addressing
+        // AddressingPolicy.register(handlerRegistry) ;
+        // Add client policies
+        // ClientPolicy.register(handlerRegistry) ;
+
+        final String participantCompletionCoordinatorURI =
+            ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME) ;
+        try {
+            participantCompletionCoordinator = builder.newURI(participantCompletionCoordinatorURI) ;
+        } catch (URISyntaxException use) {
+            // TODO - log fault and throw exception
+        }
+    }
+
+    /**
+     * Send a close request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendClose(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, closeAction);
+        NotificationType close = new NotificationType();
+
+        port.closeOperation(close);
+    }
+
+    /**
+     * Send a cancel request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCancel(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, cancelAction);
+        NotificationType cancel = new NotificationType();
+
+        port.cancelOperation(cancel);
+    }
+
+    /**
+     * Send a compensate request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendCompensate(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, compensateAction);
+        NotificationType compensate = new NotificationType();
+
+        port.compensateOperation(compensate);
+    }
+
+    /**
+     * Send a failed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendFailed(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, failedAction);
+        NotificationType failed = new NotificationType();
+
+        port.failedOperation(failed);
+    }
+
+    /**
+     * Send an exited request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendExited(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, exitedAction);
+        NotificationType exited = new NotificationType();
+
+        port.exitedOperation(exited);
+    }
+
+    /**
+     * Send a not completed request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendNotCompleted(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, notCompletedAction);
+        NotificationType notCompleted = new NotificationType();
+
+        port.notCompleted(notCompleted);
+    }
+
+    /**
+     * Send a get status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendGetStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, getStatusAction);
+        NotificationType getStatus = new NotificationType();
+
+        port.getStatusOperation(getStatus);
+    }
+
+    /**
+     * Send a status request.
+     * @param addressingProperties addressing context initialised with to and message ID.
+     * @param identifier The identifier of the initiator.
+     * @throws com.arjuna.webservices.SoapFault For any errors.
+     * @throws java.io.IOException for any transport errors.
+     */
+    public void sendStatus(W3CEndpointReference endpoint, final AddressingProperties addressingProperties, final InstanceIdentifierWS identifier,
+        final QName state)
+        throws SoapFault, IOException
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = getPort(endpoint, addressingProperties, statusAction);
+        StatusType status = new StatusType();
+        status.setState(state);
+
+        port.statusOperation(status);
+    }
+
+   /**
+     * Get the Completion Coordinator client singleton.
+     * @return The Completion Coordinator client singleton.
+     */
+    public static ParticipantCompletionParticipantClientWS getClient()
+    {
+        return CLIENT;
+    }
+
+    /**
+     * obtain a port from the participant endpoint configured with the instance identifier handler and the supplied
+     * addressing properties supplemented with the given action
+     * @param participant
+     * @param addressingProperties
+     * @param action
+     * @return
+     */
+    private BusinessAgreementWithParticipantCompletionParticipantPortType
+    getPort(final W3CEndpointReference participant, final AddressingProperties addressingProperties, final AttributedURI action)
+    {
+        BusinessAgreementWithParticipantCompletionParticipantPortType port;
+        port = participant.getPort(BusinessAgreementWithParticipantCompletionParticipantPortType.class,
+                new AddressingFeature(true, true));
+        BindingProvider bindingProvider = (BindingProvider)port;
+        /*
+        * we need to install an instance identifier handler for this port so that we impliclty pass and return
+        * context data
+        */
+        List<Handler> customHandlerChain = new ArrayList<Handler>();
+        customHandlerChain.add(new InstanceIdentifierHandlerWS());
+        bindingProvider.getBinding().setHandlerChain(customHandlerChain);
+
+        // install the correct action on the addressing properties and hang them off the request context
+        addressingProperties.setAction(action);
+        Map<String, Object> requestContext = bindingProvider.getRequestContext();
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, addressingProperties);
+        // jbossws should do this for us . . .
+        requestContext.put(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND, addressingProperties);
+
+        return port;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,160 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEventsWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Coordinator Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class CoordinatorCompletionCoordinatorProcessorWS
+{
+    /**
+     * The coordinator processor.
+     */
+    private static CoordinatorCompletionCoordinatorProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The singleton.
+     */
+    public static synchronized CoordinatorCompletionCoordinatorProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CoordinatorCompletionCoordinatorProcessorWS setProcessor(final CoordinatorCompletionCoordinatorProcessorWS processor)
+    {
+        final CoordinatorCompletionCoordinatorProcessorWS origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final CoordinatorCompletionCoordinatorInboundEventsWS coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final CoordinatorCompletionCoordinatorInboundEventsWS coordinator) ;
+
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Fail.
+     * @param fail The fail exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void fail(final ExceptionType fail, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Cannot complete.
+     * @param cannotComplete The cannot complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/CoordinatorCompletionParticipantProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEventsWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Coordinator Completion Participant processor.
+ * @author kevin
+ */
+public abstract class CoordinatorCompletionParticipantProcessorWS
+{
+    /**
+     * The participant processor.
+     */
+    private static CoordinatorCompletionParticipantProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized CoordinatorCompletionParticipantProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized CoordinatorCompletionParticipantProcessorWS setProcessor(final CoordinatorCompletionParticipantProcessorWS processor)
+    {
+        final CoordinatorCompletionParticipantProcessorWS origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final CoordinatorCompletionParticipantInboundEventsWS participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final CoordinatorCompletionParticipantInboundEventsWS participant) ;
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void complete(final NotificationType complete, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void faulted(final NotificationType faulted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionCoordinatorProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEventsWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant Completion Coordinator processor.
+ * @author kevin
+ */
+public abstract class ParticipantCompletionCoordinatorProcessorWS
+{
+    /**
+     * The coordinator processor.
+     */
+    private static ParticipantCompletionCoordinatorProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantCompletionCoordinatorProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantCompletionCoordinatorProcessorWS setProcessor(final ParticipantCompletionCoordinatorProcessorWS processor)
+    {
+        final ParticipantCompletionCoordinatorProcessorWS origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public abstract void activateCoordinator(final ParticipantCompletionCoordinatorInboundEventsWS coordinator, final String identifier) ;
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public abstract void deactivateCoordinator(final ParticipantCompletionCoordinatorInboundEventsWS coordinator) ;
+
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Fault.
+     * @param fail The fault exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/processors/ParticipantCompletionParticipantProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.processors;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEventsWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant Completion Participant processor.
+ * @author kevin
+ */
+public abstract class ParticipantCompletionParticipantProcessorWS
+{
+    /**
+     * The participant processor.
+     */
+    private static ParticipantCompletionParticipantProcessorWS PROCESSOR ;
+
+    /**
+     * Get the processor.
+     * @return The processor.
+     */
+    public static synchronized ParticipantCompletionParticipantProcessorWS getProcessor()
+    {
+        return PROCESSOR ;
+    }
+
+    /**
+     * Set the processor.
+     * @param processor The processor.
+     * @return The previous processor.
+     */
+    public static synchronized ParticipantCompletionParticipantProcessorWS setProcessor(final ParticipantCompletionParticipantProcessorWS processor)
+    {
+        final ParticipantCompletionParticipantProcessorWS origProcessor = PROCESSOR ;
+        PROCESSOR = processor ;
+        return origProcessor ;
+    }
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public abstract void activateParticipant(final ParticipantCompletionParticipantInboundEventsWS participant, final String identifier) ;
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public abstract void deactivateParticipant(final ParticipantCompletionParticipantInboundEventsWS participant) ;
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Faulted.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void failed(final NotificationType failed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext) ;
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public abstract void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext) ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionCoordinatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionCoordinatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionCoordinatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,249 @@
+
+package com.arjuna.webservices.wsba.sei;
+
+import com.arjuna.services.framework.task.Task;
+import com.arjuna.services.framework.task.TaskManager;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessorWS;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.annotation.Resource;
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.JAXWSAConstants;
+import javax.xml.ws.handler.MessageContext;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06",
+        wsdlLocation = "../wsdl/wsba-coordinator-completion-coordinator-binding.wsdl",
+        serviceName = "BusinessAgreementWithCoordinatorCompletionCoordinatorService",
+        portName = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class BusinessAgreementWithCoordinatorCompletionCoordinatorPortTypeImpl implements BusinessAgreementWithCoordinatorCompletionCoordinatorPortType
+{
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType completed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().completed(completed, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final ExceptionType fail = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().fail(fail, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType compensated = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().compensated(compensated, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType closed = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().closed(closed, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType canceled = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().cancelled(canceled, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType exit = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().exit(exit, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType cannotComplete = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().cannotComplete(cannotComplete, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final NotificationType getStatus = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().getStatus(getStatus, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters)
+    {
+        MessageContext ctx = webServiceCtx.getMessageContext();
+        final StatusType status = parameters;
+        final AddressingProperties inboundAddressProperties
+            = (AddressingProperties)ctx.get(JAXWSAConstants.SERVER_ADDRESSING_PROPERTIES_INBOUND);
+        final ArjunaContextWS arjunaContext = ArjunaContextWS.getContext(ctx);
+
+        TaskManager.getManager().queueTask(new Task() {
+            public void executeTask() {
+                CoordinatorCompletionCoordinatorProcessorWS.getProcessor().status(status, inboundAddressProperties, arjunaContext) ;
+            }
+        }) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionParticipantPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionParticipantPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithCoordinatorCompletionParticipantPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,141 @@
+
+package com.arjuna.webservices.wsba.sei;
+
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06",
+        wsdlLocation = "../wsdl/wsba-coordinator-completion-participant-binding.wsdl",
+        serviceName = "BusinessAgreementWithCoordinatorCompletionParticipantService",
+        portName = "BusinessAgreementWithCoordinatorCompletionParticipantPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class BusinessAgreementWithCoordinatorCompletionParticipantPortTypeImpl implements BusinessAgreementWithCoordinatorCompletionParticipantPortType
+{
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionCoordinatorPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionCoordinatorPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionCoordinatorPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,141 @@
+
+package com.arjuna.webservices.wsba.sei;
+
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06",
+        wsdlLocation = "../wsdl/wsba-participant-completion-coordinator-binding.wsdl",
+        serviceName = "BusinessAgreementWithCoordinatorCompletionParticipantService",
+        portName = "BusinessAgreementWithParticipantCompletionCoordinatorPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class BusinessAgreementWithParticipantCompletionCoordinatorPortTypeImpl implements BusinessAgreementWithParticipantCompletionCoordinatorPortType
+{
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionParticipantPortTypeImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionParticipantPortTypeImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/sei/BusinessAgreementWithParticipantCompletionParticipantPortTypeImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,128 @@
+
+package com.arjuna.webservices.wsba.sei;
+
+import org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantPortType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.jws.*;
+import javax.jws.soap.SOAPBinding;
+import javax.annotation.Resource;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.soap.Addressing;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1-b03-
+ * Generated source version: 2.0
+ *
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06",
+        wsdlLocation = "../wsdl/wsba-participant-completion-participant-binding.wsdl",
+        serviceName = "BusinessAgreementWithCoordinatorCompletionParticipantService",
+        portName = "BusinessAgreementWithParticipantCompletionParticipantPortType"
+)
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ at HandlerChain(file="handlers.xml")
+ at Addressing(required=true)
+public class BusinessAgreementWithParticipantCompletionParticipantPortTypeImpl implements BusinessAgreementWithParticipantCompletionParticipantPortType
+{
+    @Resource
+    private WebServiceContext webServiceCtx;
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters)
+    {
+    }
+
+    /**
+     *
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.server;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Activate the Coordinator Completion Coordinator service
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/CoordinatorCompletionParticipantWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wsba.policy.CoordinatorCompletionParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Coordinator Completion Participant service
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionCoordinatorWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionCoordinatorPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant Completion Coordinator service
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/webservices/wsba/server/ParticipantCompletionParticipantWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.webservices.wsba.server;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContext;
+
+import com.arjuna.webservices.HandlerRegistry;
+import com.arjuna.webservices.SoapRegistry;
+import com.arjuna.webservices.SoapService;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
+import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wsba.policy.ParticipantCompletionParticipantPolicy;
+import com.arjuna.services.framework.startup.Sequencer;
+
+/**
+ * Activate the Participant Completion Participant service
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        ServletContext context = servletContextEvent.getServletContext();
+        String baseURI = context.getInitParameter("BaseURI");
+        final String uri = baseURI + "/" + BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME;
+
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST11) {
+           public void run() {
+               // TODO work out how to configure the endpoint name here
+               final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+               serviceRegistry.registerServiceProvider(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
+           }
+        };
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManagerWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManagerWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BAParticipantManagerWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BAParticipantManager.java,v 1.5 2004/09/09 08:48:33 kconner Exp $
+ */
+
+package com.arjuna.wst;
+
+import javax.xml.namespace.QName;
+
+/**
+ * When a Business Activity participant registers with a BA transaction it
+ * gets a reference to the transaction coordinator that lets it callback
+ * into the transaction and drive the state-transition.
+ *
+ * One instance of this per transaction.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BAParticipantManager.java,v 1.5 2004/09/09 08:48:33 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public interface BAParticipantManagerWS
+{
+
+    /**
+     * The participant has exited the business activity. The participant
+     * uses this to inform the coordinator that is has left the activity.
+     * It will not be informed when (and how) the business activity terminates.
+     */
+
+    public void exit () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    /**
+     * The participant has completed it works, but wishes to continue in
+     * the business activity, so that it will eventually be told when (and how)
+     * the activity terminates. The participant may later be asked to
+     * compensate for the work it has done.
+     */
+
+    public void completed () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    /**
+     * Cannot complete.
+     */
+
+    public void cannotComplete () throws WrongStateException, UnknownTransactionException, SystemException;
+
+    /**
+     * Fault.
+     */
+
+    public void fail (final QName exceptionIdentifier) throws SystemException;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminatorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminatorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/BusinessActivityTerminatorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessActivityTerminator.java,v 1.4 2004/09/09 08:48:32 kconner Exp $
+ */
+
+package com.arjuna.wst;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * Not in the 1.1 specification. Supposed to use participant interface.
+ */
+
+public interface BusinessActivityTerminatorWS extends BusinessActivityTerminator
+{
+
+    public W3CEndpointReference getTerminatorEndpoint() ;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipantWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipantWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/CompletionCoordinatorParticipantWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,11 @@
+package com.arjuna.wst;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ */
+
+public interface CompletionCoordinatorParticipantWS extends CompletionCoordinatorParticipant
+{
+    public W3CEndpointReference getParticipant();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CompletionCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,219 @@
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessorWS;
+import com.arjuna.webservices.wsat.client.CompletionInitiatorClientWS;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.wst.*;
+import com.arjuna.wsc.messaging.MessageId;
+
+import java.text.MessageFormat;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Completion Coordinator processor.
+ * @author kevin
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_1 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_1] - Unknown transaction
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_2 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_2] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_3 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_3] - Unexpected exception thrown from commit:
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_4 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_4] - Commit called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_5 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_5] - Unknown participant
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_6 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_6] - Unknown transaction
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_7 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_7] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_8 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_8] - Unexpected exception thrown from rollback:
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_9 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_9] - Rollback called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_10 [com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_10] - Unknown participant
+ */
+public class CompletionCoordinatorProcessorWSImpl extends CompletionCoordinatorProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final CompletionCoordinatorParticipantWS participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final CompletionCoordinatorParticipantWS participant)
+    {
+        activatedObjectProcessor.deactivateObject(participant) ;
+    }
+
+    /**
+     * Get the participant with the specified identifier.
+     * @param instanceIdentifier The participant identifier.
+     * @return The participant or null if not known.
+     */
+    private CompletionCoordinatorParticipantWS getParticipant(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CompletionCoordinatorParticipantWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void commit(final Notification commit, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CompletionCoordinatorParticipantWS participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.commit() ;
+                }
+                catch (final TransactionRolledBackException trbe)
+                {
+                    final AddressingProperties responseAddressingContext =
+                        AddressingHelper.createNotificationContext(messageId) ;
+                    CompletionInitiatorClientWS.getClient().sendAborted(participant.getParticipant(), responseAddressingContext, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_1")) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_2") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_3", th) ;
+                    }
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(messageId) ;
+                CompletionInitiatorClientWS.getClient().sendCommitted(participant.getParticipant(), responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_4", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_5")) ;
+                CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void rollback(final Notification rollback, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CompletionCoordinatorParticipantWS participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.rollback() ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_6")) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (SystemException systemException)
+                {
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_7") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {systemException}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_8", th) ;
+                    }
+                    final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(messageId) ;
+                CompletionInitiatorClientWS.getClient().sendAborted(participant.getParticipant(), responseAddressingContext, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_9", new Object[] {instanceIdentifier}) ;
+                }
+                final AddressingProperties faultAddressingContext = AddressingHelper.createFaultContext(addressingProperties, MessageId.getMessageId()) ;
+                final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                    WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CompletionCoordinatorProcessorWSImpl_10")) ;
+                CompletionInitiatorClientWS.getClient().sendSoapFault(participant.getParticipant(), faultAddressingContext, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,485 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionParticipantClientWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Coordinator Completion Coordinator processor.
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorProcessorWSImpl extends CoordinatorCompletionCoordinatorProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public void activateCoordinator(final CoordinatorCompletionCoordinatorInboundEventsWS coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final CoordinatorCompletionCoordinatorInboundEventsWS coordinator)
+    {
+        activatedObjectProcessor.deactivateObject(coordinator) ;
+    }
+
+    /**
+     * Get the coordinator associated with the specified identifier.
+     * @param instanceIdentifier The coordinator identifier.
+     * @return The coordinator or null if not known.
+     */
+    private CoordinatorCompletionCoordinatorInboundEventsWS getCoordinator(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorCompletionCoordinatorInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancelled.
+     * @param cancelled The canceled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.canceled_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cancelled_1] - Unexpected exception thrown from cancelled:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.canceled_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cancelled_2] - Cancelled called on unknown coordinator: {0}
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.cancelled(cancelled, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.canceled_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.canceled_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_1] - Unexpected exception thrown from closed:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_2] - Closed called on unknown coordinator: {0}
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.closed(closed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.closed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_1] - Unexpected exception thrown from compensated:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_2] - Compensated called on unknown coordinator: {0}
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.compensated(compensated, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.compensated_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+      * Fail.
+      * @param fail The fail exceptionnotification.
+      * @param addressingProperties The addressing context.
+      * @param arjunaContext The arjuna context.
+      *
+      * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_1] - Unexpected exception thrown from compensated:
+      * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_2] - Compensated called on unknown coordinator: {0}
+      */
+     public void fail(final ExceptionType fail, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+     {
+         final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+         final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+         if (coordinator != null)
+         {
+             try
+             {
+                 coordinator.fail(fail, addressingProperties, arjunaContext) ;
+             }
+             catch (final Throwable th)
+             {
+                 if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                 {
+                     WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_1", th) ;
+                 }
+             }
+         }
+         else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+         {
+             WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.fail_2", new Object[] {instanceIdentifier}) ;
+         }
+     }
+    
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_1] - Unexpected exception thrown from completed:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_2] - Completed called on unknown coordinator: {0}
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.completed(completed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.completed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_1] - Unexpected exception thrown from exit:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_2] - Exit called on unknown coordinator: {0}
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.exit(exit, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.exit_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendExited(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * FaulCannot completet.
+     * @param cannotComplete The cannot complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_1] - Unexpected exception thrown from fault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_2] - Fault called on unknown coordinator: {0}
+     */
+    public void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.cannotComplete(cannotComplete, addressingProperties, arjunaContext); ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.cannotComplete_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendFailed(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_2] - GetStatus called on unknown coordinator: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.getStatus(getStatus, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_2] - Status called on unknown coordinator: {0}
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.status(status, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_2 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(soapFault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Send an exited message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendExited_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO cannot do this without an endpoint so we have to log an error message!
+            // CoordinatorCompletionParticipantClientWS.getClient().sendExited(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendExited_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a faulted message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFailed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFailed_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFailed(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO cannot do this without an endpoint so we have to log an error message!
+            // CoordinatorCompletionParticipantClientWS.getClient().sendFailed(responseAddressingContext, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFailed_1", th) ;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorCompletionParticipantProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,516 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEventsWS;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionCoordinatorClientWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Coordinator Completion Participant processor.
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantProcessorWSImpl extends CoordinatorCompletionParticipantProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final CoordinatorCompletionParticipantInboundEventsWS participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final CoordinatorCompletionParticipantInboundEventsWS participant)
+    {
+        activatedObjectProcessor.deactivateObject(participant) ;
+    }
+
+    /**
+     * Get the participant with the specified identifier.
+     * @param instanceIdentifier The participant identifier.
+     * @return The participant or null if not known.
+     */
+    private CoordinatorCompletionParticipantInboundEventsWS getParticipant(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorCompletionParticipantInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl.cancel_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..cancel_1] - Unexpected exception thrown from cancel:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl.cancel_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..cancel_2] - Cancel called on unknown participant: {0}
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.cancel(cancel, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl.cancel_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl.cancel_2", new Object[] {instanceIdentifier}) ;
+            }
+            // TODO - cannot do this as we don't have an endpoint
+            // sendCancelled(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_1] - Unexpected exception thrown from close:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_2] - Close called on unknown participant: {0}
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.close(close, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..close_2", new Object[] {instanceIdentifier}) ;
+            }
+            // TODO - cannot do this as we don't have an endpoint
+            // sendClosed(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_1] - Unexpected exception thrown from compensate:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_2] - Compensate called on unknown participant: {0}
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.compensate(compensate, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..compensate_2", new Object[] {instanceIdentifier}) ;
+            }
+            // TODO - cannot do this as we don't have an endpoint
+            // sendCompensated(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_1] - Unexpected exception thrown from complete:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_2] - Complete called on unknown participant: {0}
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_3 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_3] - Complete called on unknown participant
+     */
+    public void complete(final NotificationType complete, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.complete(complete, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_2", new Object[] {instanceIdentifier}) ;
+            }
+            // TODO - cannot do this as we don't have an endpoint
+            // sendFault(addressingProperties, arjunaContext, WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..complete_3")) ;
+        }
+    }
+
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_1] - Unexpected exception thrown from exited:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_2] - Exited called on unknown participant: {0}
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.exited(exited, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..exited_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Faulted.
+     * @param faulted The faulted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_1] - Unexpected exception thrown from faulted:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_2] - Faulted called on unknown participant: {0}
+     */
+    public void faulted(final NotificationType faulted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.failed(faulted, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..faulted_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_2] - GetStatus called on unknown participant: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.getStatus(getStatus, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_2] - Status called on unknown participant: {0}
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.status(status, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_2 [com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionParticipantProcessorWSImpl..soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Send a cancelled message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCancelled_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - have to just log an error as we cannot do this without a client endpoint
+            // CoordinatorCompletionCoordinatorClientWS.getClient().sendCancelled(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCancelled_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a closed message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendClosed_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - have to just log an error as we cannot do this without a client endpoint
+            // CoordinatorCompletionCoordinatorClientWS.getClient().sendClosed(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendClosed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a compensated message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCompensated_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - have to just log an error as we cannot do this without a client endpoint
+            // CoordinatorCompletionCoordinatorClientWS.getClient().sendCompensated(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendCompensated_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a fault message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     * @param exceptionIdentifier The exception identifier.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFault_1 [com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFault_1] - Unexpected exception while sending Fail
+     */
+    private void sendFault(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext, final String exceptionIdentifier)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - have to just log an error as we cannot do this without a client endpoint
+            // CoordinatorCompletionCoordinatorClientWS.getClient().sendFault(responseAddressingProperties, arjunaContext.getInstanceIdentifier(), exceptionIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorCompletionCoordinatorProcessorWSImpl.sendFault_1", th) ;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/CoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,319 @@
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessorWS;
+import com.arjuna.webservices.wsat.CoordinatorInboundEventsWS;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Coordinator processor.
+ * @author kevin
+ */
+public class CoordinatorProcessorWSImpl extends CoordinatorProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public void activateCoordinator(final CoordinatorInboundEventsWS coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final CoordinatorInboundEventsWS coordinator)
+    {
+        activatedObjectProcessor.deactivateObject(coordinator) ;
+    }
+
+    /**
+     * Get the coordinator with the specified identifier.
+     * @param instanceIdentifier The coordinator identifier.
+     * @return The coordinator or null if not known.
+     */
+    private CoordinatorInboundEventsWS getCoordinator(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (CoordinatorInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Aborted.
+     * @param aborted The aborted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_1] - Unexpected exception thrown from aborted:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_2] - Aborted called on unknown coordinator: {0}
+     */
+    public void aborted(final Notification aborted, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.aborted(aborted, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.aborted_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Committed.
+     * @param committed The committed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_1] - Unexpected exception thrown from committed:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_2] - Committed called on unknown coordinator: {0}
+     */
+    public void committed(final Notification committed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.committed(committed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.committed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Prepared.
+     * @param prepared The prepared notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_1] - Unexpected exception thrown from prepared:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_2] - Prepared called on unknown coordinator: {0}
+     */
+    public void prepared(final Notification prepared, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.prepared(prepared, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.prepared_2", new Object[] {instanceIdentifier}) ;
+            }
+
+            final String identifierValue = instanceIdentifier.getInstanceIdentifier() ;
+            if ((identifierValue != null) && (identifierValue.length() > 0) && (identifierValue.charAt(0) == 'D'))
+            {
+        	    sendRollback(addressingProperties, arjunaContext) ;
+            }
+            else
+            {
+                sendInvalidState(addressingProperties, arjunaContext) ;
+            }
+        }
+    }
+
+    /**
+     * Read only.
+     * @param readOnly The read only notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_1] - Unexpected exception thrown from readOnly:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_2] - ReadOnly called on unknown coordinator: {0}
+     */
+    public void readOnly(final Notification readOnly, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.readOnly(readOnly, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+        {
+            WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.readOnly_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final CoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(fault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+            }
+        }
+    }
+
+    /**
+     * Send an unknown transaction fault.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_1] - Unknown Transaction.
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_2 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_2] - Unexpecting exception while sending InvalidState
+     */
+    private void sendInvalidState(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String responseMessageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(responseMessageId) ;
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+
+        /*
+         * TODO - fix this. cannot send invalid state fault as we have no participant end point!
+
+        final AttributedURI requestMessageId = addressingProperties.getMessageID() ;
+        if (requestMessageId != null)
+        {
+            AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+            Relationship relatesToValue = builder.newRelationship(requestMessageId.getURI());
+            Relationship[] relatesToSet = { relatesToValue };
+            responseAddressingContext.setRelatesTo(relatesToSet);
+        }
+
+        try {
+            final String message = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_1") ;
+            final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME, message) ;
+            ParticipantClientWS.getClient().sendSoapFault(responseAddressingContext, soapFault, instanceIdentifier) ;
+        } catch (final Throwable th) {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendInvalidState_2", th) ;
+            }
+        }
+        */
+    }
+
+    /**
+     * Send a rollback message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendRollback_1 [com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendRollback_1] - Unexpected exception while sending Rollback
+     */
+    private void sendRollback(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingContext = AddressingHelper.createNotificationContext(messageId) ;
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        /*
+         * TODO - fix this. cannot send rollback as we have no participant end point!
+
+        try
+        {
+            ParticipantClientWS.getClient().sendRollback(responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.CoordinatorProcessorWSImpl.sendRollback_1", th) ;
+            }
+        }
+        */
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,451 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionParticipantClientWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant Completion Coordinator processor.
+ * @author kevin
+ */
+public class ParticipantCompletionCoordinatorProcessorWSImpl extends ParticipantCompletionCoordinatorProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the coordinator.
+     * @param coordinator The coordinator.
+     * @param identifier The identifier.
+     */
+    public void activateCoordinator(final ParticipantCompletionCoordinatorInboundEventsWS coordinator, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(coordinator, identifier) ;
+    }
+
+    /**
+     * Deactivate the coordinator.
+     * @param coordinator The coordinator.
+     */
+    public void deactivateCoordinator(final ParticipantCompletionCoordinatorInboundEventsWS coordinator)
+    {
+        activatedObjectProcessor.deactivateObject(coordinator) ;
+    }
+
+    /**
+     * Get the coordinator with the specified identifier.
+     * @param instanceIdentifier The coordinator identifier.
+     * @return The coordinator or null if not known.
+     */
+    private ParticipantCompletionCoordinatorInboundEventsWS getCoordinator(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantCompletionCoordinatorInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancelled.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_1] - Unexpected exception thrown from cancelled:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_2] - Cancelled called on unknown coordinator: {0}
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.cancelled(cancelled, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.cancelled_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Closed.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_1] - Unexpected exception thrown from closed:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_2] - Closed called on unknown coordinator: {0}
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.closed(closed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.closed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Compensated.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_1] - Unexpected exception thrown from compensated:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_2] - Compensated called on unknown coordinator: {0}
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.compensated(compensated, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.compensated_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Completed.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_1] - Unexpected exception thrown from completed:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_2] - Completed called on unknown coordinator: {0}
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.completed(completed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.completed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Exit.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_1] - Unexpected exception thrown from exit:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_2] - Exit called on unknown coordinator: {0}
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.exit(exit, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.exit_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendExited(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Fault.
+     * @param fail The fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_1] - Unexpected exception thrown from fault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_2] - Fault called on unknown coordinator: {0}
+     */
+    public void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.fail(fail, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.fault_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendFailed(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_2] - GetStatus called on unknown coordinator: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.getStatus(getStatus, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Status.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_2] - Status called on unknown coordinator: {0}
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.status(status, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * SOAP fault.
+     * @param soapFault The SOAP fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_2] - SoapFault called on unknown coordinator: {0}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionCoordinatorInboundEventsWS coordinator = getCoordinator(instanceIdentifier) ;
+
+        if (coordinator != null)
+        {
+            try
+            {
+                coordinator.soapFault(soapFault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Send an exited message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendExited_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // cannot do this without a coordinator endpoint and that is the only way it gets called
+            // ParticipantCompletionParticipantClientWS.getClient().sendExited(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendExited_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a faulted message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendFaulted_1 [com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendFaulted_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFailed(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(  messageId) ;
+        try
+        {
+            // cannot do this without a coordinator endpoint and that is the only way it gets called
+            // ParticipantCompletionParticipantClientWS.getClient().sendFaulted(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionCoordinatorProcessorWSImpl.sendFailed_1", th) ;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantCompletionParticipantProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,445 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEventsWS;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionCoordinatorClientWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+
+/**
+ * The Participant Completion Participant processor.
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantProcessorWSImpl extends ParticipantCompletionParticipantProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final ParticipantCompletionParticipantInboundEventsWS participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final ParticipantCompletionParticipantInboundEventsWS participant)
+    {
+        activatedObjectProcessor.deactivateObject(participant) ;
+    }
+
+    /**
+     * Get the participant with the specified identifier.
+     * @param instanceIdentifier The participant identifier.
+     * @return The participant or null if not known.
+     */
+    private ParticipantCompletionParticipantInboundEventsWS getParticipant(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantCompletionParticipantInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_1] - Unexpected exception thrown from cancel:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_2] - Cancel called on unknown participant: {0}
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.cancel(cancel, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.cancel_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCancelled(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_1] - Unexpected exception thrown from close:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_2] - Close called on unknown participant: {0}
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.close(close, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.close_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendClosed(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Compensate.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_1] - Unexpected exception thrown from compensate:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_2] - Compensate called on unknown participant: {0}
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.compensate(compensate, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.compensate_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCompensated(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Exited.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_1] - Unexpected exception thrown from exited:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_2] - Exited called on unknown participant: {0}
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.exited(exited, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.exited_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Failed.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_1] - Unexpected exception thrown from failed:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_2] - Failed called on unknown participant: {0}
+     */
+    public void failed(final NotificationType failed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.failed(failed, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.failed_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Get Status.
+     * @param getStatus The get status notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_1] - Unexpected exception thrown from getStatus:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_2] - Complete called on unknown participant: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.getStatus(getStatus, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.getStatus_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Status.
+     * @param status The status type.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_1] - Unexpected exception thrown from status:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_2] - Status called on unknown participant: {0}
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.status(status, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.status_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS  instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantCompletionParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+        }
+    }
+
+    /**
+     * Send a cancelled message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCancelled_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - cannot do this without a coordinator endpoint and this only gets called when we don't have one
+            // ParticipantCompletionCoordinatorClientWS.getClient().sendCancelled(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCancelled_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a closed message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendClosed_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - cannot do this without a coordinator endpoint and this only gets called when we don't have one
+            // ParticipantCompletionCoordinatorClientWS.getClient().sendClosed(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendClosed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send a compensated message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCompensated_1 [com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        try
+        {
+            // TODO - cannot do this without a coordinator endpoint and this only gets called when we don't have one
+            // ParticipantCompletionCoordinatorClientWS.getClient().sendCompensated(responseAddressingProperties, arjunaContext.getInstanceIdentifier()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantCompletionParticipantProcessorWSImpl.sendCompensated_1", th) ;
+            }
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/ParticipantProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,272 @@
+package com.arjuna.wst.messaging;
+
+import com.arjuna.webservices.wsat.processors.ParticipantProcessorWS;
+import com.arjuna.webservices.wsat.ParticipantInboundEventsWS;
+import com.arjuna.webservices.wsat.client.CoordinatorClientWS;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.wsc.messaging.MessageId;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.ws.addressing.AddressingProperties;
+
+/**
+ * The Participant processor.
+ * @author kevin
+ */
+public class ParticipantProcessorWSImpl extends ParticipantProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final ParticipantInboundEventsWS participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final ParticipantInboundEventsWS participant)
+    {
+        activatedObjectProcessor.deactivateObject(participant) ;
+    }
+
+    /**
+     * Get the participant with the specified identifier.
+     * @param instanceIdentifier The participant identifier.
+     * @return The participant or null if not known.
+     */
+    private ParticipantInboundEventsWS getParticipant(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (ParticipantInboundEventsWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Commit.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_1] - Unexpected exception thrown from commit:
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_2 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_2] - Commit called on unknown participant: {0}
+     */
+    public void commit(final Notification commit, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.commit(commit, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.commit_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendCommitted(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Prepare.
+     * @param prepare The prepare notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_1] - Unexpected exception thrown from prepare:
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_2 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_2] - Prepare called on unknown participant: {0}
+     */
+    public void prepare(final Notification prepare, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.prepare(prepare, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.prepare_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendAborted(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * Rollback.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_1] - Unexpected exception thrown from rollback:
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_2 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_2] - Rollback called on unknown participant: {0}
+     */
+    public void rollback(final Notification rollback, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.rollback(rollback, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.rollback_2", new Object[] {instanceIdentifier}) ;
+            }
+            sendAborted(addressingProperties, arjunaContext) ;
+        }
+    }
+
+    /**
+     * SOAP Fault.
+     * @param fault The SOAP fault notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_1] - Unexpected exception thrown from soapFault:
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_2 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_2] - SoapFault called on unknown participant: {0}
+     */
+    public void soapFault(final SoapFault fault, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final ParticipantInboundEventsWS participant = getParticipant(instanceIdentifier) ;
+
+        if (participant != null)
+        {
+            try
+            {
+                participant.soapFault(fault, addressingProperties, arjunaContext) ;
+            }
+            catch (final Throwable th)
+            {
+                if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_1", th) ;
+                }
+            }
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isWarnEnabled())
+            {
+                WSTLogger.arjLoggerI18N.warn("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.soapFault_2", new Object[] {instanceIdentifier}) ;
+            }
+        }
+    }
+
+    /**
+     * Send a committed message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendCommitted_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendCommitted_1] - Unexpected exception while sending Committed
+     */
+    private void sendCommitted(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        /*
+         * TODO - fix this. participant is null and we cannto send a message without an endpoint
+        try
+        {
+            CoordinatorClientWS.getClient().sendCommitted(responseAddressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendCommitted_1", th) ;
+            }
+        }
+        */
+    }
+
+    /**
+     * Send an aborted message.
+     *
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendAborted_1 [com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendAborted_1] - Unexpected exception while sending Aborted
+     */
+    private void sendAborted(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV add check for recovery
+        final String messageId = MessageId.getMessageId() ;
+        final AddressingProperties responseAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        /*
+         * TODO - fix this. participant is null and we cannto send a message without an endpoint
+        try
+        {
+            CoordinatorClientWS.getClient().sendAborted(responseAddressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.ParticipantProcessorWSImpl.sendAborted_1", th) ;
+            }
+        }
+        */
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminationCoordinatorProcessorWSImpl.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminationCoordinatorProcessorWSImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/TerminationCoordinatorProcessorWSImpl.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,340 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.base.processors.ActivatedObjectProcessor;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.client.TerminationParticipantClientWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.*;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.text.MessageFormat;
+
+/**
+ * The Terminator Participant processor.
+ * @author kevin
+ *
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_1 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_1] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_2 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_2] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_3 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_3] - Unexpected exception thrown from cancel:
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_4 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_4] - Cancel called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_5 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_5] - Unknown participant
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_6 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_6] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_7 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_7] - Transaction rolled back
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_8 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_8] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_9 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_9] - Unexpected exception thrown from close:
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_10 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_10] - Close called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_11 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_11] - Unknown participant
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_12 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_12] - Unknown transaction
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_13 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_13] - Unknown error: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_14 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_14] - Unexpected exception thrown from complete:
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_15 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_15] - Complete called on unknown participant: {0}
+ * @message com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_16 [com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_16] - Unknown participant
+ */
+public class TerminationCoordinatorProcessorWSImpl extends TerminationCoordinatorProcessorWS
+{
+    /**
+     * The activated object processor.
+     */
+    private final ActivatedObjectProcessor activatedObjectProcessor = new ActivatedObjectProcessor() ;
+
+    /**
+     * Activate the participant.
+     * @param participant The participant.
+     * @param identifier The identifier.
+     */
+    public void activateParticipant(final BusinessActivityTerminatorWS participant, final String identifier)
+    {
+        activatedObjectProcessor.activateObject(participant, identifier) ;
+    }
+
+    /**
+     * Deactivate the participant.
+     * @param participant The participant.
+     */
+    public void deactivateParticipant(final BusinessActivityTerminatorWS participant)
+    {
+        activatedObjectProcessor.deactivateObject(participant) ;
+    }
+
+    /**
+     * Get the participant with the specified identifier.
+     * @param instanceIdentifier The participant identifier.
+     * @return The participant or null if not known.
+     */
+    private BusinessActivityTerminatorWS getParticipant(final InstanceIdentifierWS instanceIdentifier)
+    {
+        final String identifier = (instanceIdentifier != null ? instanceIdentifier.getInstanceIdentifier() : null) ;
+        return (BusinessActivityTerminatorWS)activatedObjectProcessor.getObject(identifier) ;
+    }
+
+    /**
+     * Cancel.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminatorWS participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                W3CEndpointReference endpoint = participant.getTerminatorEndpoint();
+
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.cancel() ;
+                }
+                catch (final FaultedException fe)
+                {
+                    final AddressingProperties responseAddressingProperties =
+                        AddressingHelper.createNotificationContext(messageId) ;
+                    TerminationParticipantClientWS.getClient().sendFaulted(endpoint, responseAddressingProperties, instanceIdentifier) ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_1")) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_2") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_3", th) ;
+                    }
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingProperties responseAddressingProperties =
+                    AddressingHelper.createNotificationContext(messageId) ;
+                TerminationParticipantClientWS.getClient().sendCancelled(endpoint, responseAddressingProperties, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_4", new Object[] {instanceIdentifier}) ;
+                }
+                // cannot do this without an endpoint
+                //final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                // final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                //     WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_5")) ;
+                // TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+
+    /**
+     * Close.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminatorWS participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                W3CEndpointReference endpoint = participant.getTerminatorEndpoint();
+
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.close() ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_6")) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final TransactionRolledBackException trbe)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.TRANSACTIONROLLEDBACK_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_7")) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_8") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_9", th) ;
+                    }
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingProperties responseAddressingProperties =
+                    AddressingHelper.createNotificationContext(messageId) ;
+                TerminationParticipantClientWS.getClient().sendClosed(endpoint, responseAddressingProperties, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_10", new Object[] {instanceIdentifier}) ;
+                }
+                // cannot do this without an endpoint
+                // final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                // final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                //     WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_11")) ;
+                // TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+
+    /**
+     * Complete.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void complete(final NotificationType complete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+        final BusinessActivityTerminatorWS participant = getParticipant(instanceIdentifier) ;
+
+        try
+        {
+            if (participant != null)
+            {
+                W3CEndpointReference endpoint = participant.getTerminatorEndpoint();
+
+                final String messageId = MessageId.getMessageId() ;
+                try
+                {
+                    participant.complete() ;
+                }
+                catch (final FaultedException fe)
+                {
+                    final AddressingProperties responseAddressingProperties =
+                        AddressingHelper.createNotificationContext(messageId) ;
+                    TerminationParticipantClientWS.getClient().sendFaulted(endpoint, responseAddressingProperties, instanceIdentifier) ;
+                }
+                catch (final UnknownTransactionException ute)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                        WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_12")) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final SystemException se)
+                {
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(messageId) ;
+                    final String pattern = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_13") ;
+                    final String message = MessageFormat.format(pattern, new Object[] {se}) ;
+                    final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME, message) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                catch (final Throwable th)
+                {
+                    if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                    {
+                        WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_14", th) ;
+                    }
+                    final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                    final SoapFault soapFault = new SoapFault(th) ;
+                    TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+                    return ;
+                }
+                final AddressingProperties responseAddressingProperties =
+                    AddressingHelper.createNotificationContext(messageId) ;
+                TerminationParticipantClientWS.getClient().sendCompleted(endpoint, responseAddressingProperties, instanceIdentifier) ;
+            }
+            else
+            {
+                if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+                {
+                    WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_15", new Object[] {instanceIdentifier}) ;
+                }
+                // cannot do this without an endpoint
+                // final AddressingProperties faultAddressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+                // final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME,
+                //     WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.TerminationCoordinatorProcessorWSImpl_16")) ;
+                // TerminationParticipantClientWS.getClient().sendSoapFault(endpoint, faultAddressingProperties, soapFault, instanceIdentifier) ;
+            }
+        }
+        catch (Throwable throwable)
+        {
+            throwable.printStackTrace(System.err);
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/deploy/TransactionWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging.deploy;
+
+import com.arjuna.common.util.SharedTimer;
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessorWS;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessorWS;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessorWS;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessorWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessorWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessorWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessorWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessorWS;
+import com.arjuna.wst.messaging.*;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Initialise the transaction services.
+ * @author kevin
+ */
+public class TransactionWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WST) {
+           public void run() {
+               CompletionCoordinatorProcessorWS.setProcessor(new CompletionCoordinatorProcessorWSImpl()) ;
+               ParticipantProcessorWS.setProcessor(new ParticipantProcessorWSImpl()) ;
+               CoordinatorProcessorWS.setProcessor(new CoordinatorProcessorWSImpl()) ;
+               TerminationCoordinatorProcessorWS.setProcessor(new TerminationCoordinatorProcessorWSImpl()) ;
+               CoordinatorCompletionParticipantProcessorWS.setProcessor(new CoordinatorCompletionParticipantProcessorWSImpl()) ;
+               ParticipantCompletionParticipantProcessorWS.setProcessor(new ParticipantCompletionParticipantProcessorWSImpl()) ;
+               CoordinatorCompletionCoordinatorProcessorWS.setProcessor(new CoordinatorCompletionCoordinatorProcessorWSImpl()) ;
+               ParticipantCompletionCoordinatorProcessorWS.setProcessor(new ParticipantCompletionCoordinatorProcessorWSImpl()) ;
+           }
+        };
+        // this is the last WST callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WST11);
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionCoordinatorEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,980 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.CoordinatorCompletionCoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionParticipantClientWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BAParticipantManagerWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * The coordinator completion coordinator state engine
+ * @author kevin
+ */
+public class CoordinatorCompletionCoordinatorEngineWS implements CoordinatorCompletionCoordinatorInboundEventsWS
+{
+    /**
+     * The coordinator id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifierWS instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final W3CEndpointReference participant ;
+    /**
+     * The associated coordinator
+     */
+    private BAParticipantManagerWS coordinator ;
+    /**
+     * The current state.
+     */
+    private StateWS state;
+
+    /**
+     * Construct the initial engine for the coordinator.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     */
+    public CoordinatorCompletionCoordinatorEngineWS(final String id, final W3CEndpointReference participant)
+    {
+        this(id, participant, StateWS.STATE_ACTIVE) ;
+    }
+
+    /**
+     * Construct the engine for the coordinator in a specified state.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     * @param state The initial state.
+     */
+    public CoordinatorCompletionCoordinatorEngineWS(final String id, final W3CEndpointReference participant,
+        final StateWS state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifierWS(id) ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+
+    /**
+     * Set the coordinator and register
+     * @param coordinator
+     */
+    public void setCoordinator(final BAParticipantManagerWS coordinator)
+    {
+        this.coordinator = coordinator ;
+        CoordinatorCompletionCoordinatorProcessorWS.getProcessor().activateCoordinator(this, id) ;
+    }
+
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Ended
+     * Canceling-Completing -> Ended
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_CANCELING) || (current == StateWS.STATE_CANCELING_ACTIVE) ||
+                (current == StateWS.STATE_CANCELING_COMPLETING))
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Ended
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_CLOSING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Ended
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Ended
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_CANCELING_COMPLETING) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_COMPLETED) ;
+            }
+            else if (current == StateWS.STATE_ACTIVE)
+            {
+        	ended() ;
+            }
+        }
+
+        if (current == StateWS.STATE_CLOSING)
+        {
+            sendClose() ;
+        }
+        else if (current == StateWS.STATE_COMPENSATING)
+        {
+            sendCompensate() ;
+        }
+        else if (current == StateWS.STATE_ACTIVE)
+        {
+            // TODO - we cannot send a fault here
+            // sendInvalidStateFault() ;
+        }
+    }
+
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Exiting
+     * Canceling -> Exiting
+     * Canceling-Active -> Exiting
+     * Canceling-Completing -> Exiting
+     * Completing -> Exiting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Faulting -> Faulting (invalid state)
+     * Faulting-Active -> Faulting (invalid state)
+     * Faulting-Compensating -> Faulting (invalid state)
+     * Exiting -> Exiting
+     * Ended -> Ended (resend Exited)
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING_ACTIVE) ||
+        	(current == StateWS.STATE_CANCELING_COMPLETING) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_EXITING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING_ACTIVE) ||
+            (current == StateWS.STATE_CANCELING_COMPLETING) || (current == StateWS.STATE_COMPLETING))
+        {
+            executeExit() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendExited() ;
+        }
+    }
+
+    /**
+     * Handle the fail event.
+     * @param fail The fail exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Failing-Active
+     * Canceling-Active -> Failing-Canceling
+     * Canceling-Completing -> Failing-Canceling
+     * Completing -> Failing-Completing
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Failing-Compensating
+     * Failing-Active -> Failing-Active
+     * Failing-Canceling -> Failing-Canceling
+     * Failing-Completing -> Failing-Completing
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend Failed)
+     */
+    public void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_FAILING_ACTIVE) ;
+            }
+            else if ((current == StateWS.STATE_CANCELING_ACTIVE) || (current == StateWS.STATE_CANCELING_COMPLETING))
+            {
+                changeState(StateWS.STATE_FAILING_CANCELING) ;
+            }
+            else if (current == StateWS.STATE_COMPLETING)
+            {
+                changeState(StateWS.STATE_FAILING_COMPLETING) ;
+            }
+            else if (current == StateWS.STATE_COMPENSATING)
+            {
+                changeState(StateWS.STATE_FAILING_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executeFail(fail.getExceptionIdentifier()) ;
+        }
+        else if ((current == StateWS.STATE_CANCELING_ACTIVE) || (current == StateWS.STATE_CANCELING_COMPLETING) ||
+        	 (current == StateWS.STATE_COMPLETING) || (current == StateWS.STATE_COMPENSATING))
+        {
+            sendFailed() ;
+            ended() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendFailed() ;
+        }
+    }
+
+    /**
+     * Handle the cannot complete event.
+     * @param cannotComplete The cannotComplete exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> NotComleting
+     * Canceling-Active -> NotCompleting
+     * Canceling-Completing -> NotCompleting
+     * Completing -> NotCompleting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend NotCompleted)
+     */
+    public void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING_ACTIVE) ||
+        	(current == StateWS.STATE_CANCELING_COMPLETING) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_NOT_COMPLETING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING_ACTIVE) ||
+            (current == StateWS.STATE_CANCELING_COMPLETING) || (current == StateWS.STATE_COMPLETING))
+        {
+            executeCannotComplete() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendNotCompleted() ;
+        }
+    }
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+        sendStatus(current) ;
+    }
+
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV - implement
+    }
+
+    /**
+     * Handle the get status event.
+     * @return The state.
+     */
+    public synchronized StateWS getStatus()
+    {
+        return state ;
+    }
+
+    /**
+     * Handle the cancel event.
+     * @return The state.
+     *
+     * Active -> Canceling-Active
+     * Canceling-Active -> Canceling-Active
+     * Canceling-Completing -> Canceling-Completing
+     * Completing -> Canceling-Completing
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS cancel()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_CANCELING_ACTIVE) ;
+            }
+            else if (current == StateWS.STATE_COMPLETING)
+            {
+                changeState(StateWS.STATE_CANCELING_COMPLETING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            sendCancel() ;
+            return waitForState(StateWS.STATE_CANCELING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if (current == StateWS.STATE_COMPLETING)
+        {
+            sendCancel() ;
+            return waitForState(StateWS.STATE_CANCELING_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the compensate event.
+     * @return The state.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Compensating
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS compensate()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompensate() ;
+            return waitForState(StateWS.STATE_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+        }
+
+        return current ;
+    }
+
+    /**
+     * Handle the complete event.
+     * @return The state.
+     *
+     * Active -> Completing
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS complete()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_COMPLETING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            sendComplete() ;
+            return waitForState(StateWS.STATE_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the close event.
+     * @return The state.
+     *
+     * Active -> Active (invalid state)
+     * Canceling-Active -> Canceling-Active (invalid state)
+     * Canceling-Completing -> Canceling-Completing (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Closing
+     * Closing -> Closing
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS close()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_CLOSING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            sendClose() ;
+            return waitForState(StateWS.STATE_CLOSING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        ended() ;
+        try
+        {
+            coordinator.fail(soapFault.getSubcode()) ;
+        }
+        catch (final Throwable th) {} // ignore
+    }
+
+    /**
+     * Send the close message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendClose_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendClose_1] - Unexpected exception while sending Close
+     */
+    private void sendClose()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendClose(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendClose_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the compensate message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCompensate_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCompensate_1] - Unexpected exception while sending Compensate
+     */
+    private void sendCompensate()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendCompensate(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCompensate_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the complete message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendComplete_1] - Unexpected exception while sending Complete
+     */
+    private void sendComplete()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendComplete(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendComplete_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cancel message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCancel_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCancel_1] - Unexpected exception while sending Cancel
+     */
+    private void sendCancel()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendCancel(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendCancel_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the exited message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendExited_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendExited(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendExited_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the failed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendFailed_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendFailed_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFailed()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendFailed(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendFailed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the not completed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendNotCompleted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendNotCompleted_1] - Unexpected exception while sending NotCompleted
+     */
+    private void sendNotCompleted()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendNotCompleted(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendNotCompleted_1", th) ;
+            }
+        }
+    }
+    /**
+     * Send the status message.
+     * @param state The state.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final StateWS state)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionParticipantClientWS.getClient().sendStatus(participant, addressingProperties, instanceIdentifier, state.getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.sendStatus_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Get the coordinator id.
+     * @return The coordinator id.
+     */
+    public String getId()
+    {
+        return id ;
+    }
+
+    /**
+     * Get the participant endpoint reference
+     * @return The participant endpoint reference
+     */
+    public W3CEndpointReference getParticipant()
+    {
+        return participant ;
+    }
+
+    /**
+     * Get the associated coordinator.
+     * @return The associated coordinator.
+     */
+    public BAParticipantManagerWS getCoordinator()
+    {
+        return coordinator ;
+    }
+
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final StateWS state)
+    {
+        if (this.state != state)
+        {
+            this.state = state ;
+            notifyAll() ;
+        }
+    }
+
+    /**
+     * Wait for the state to change from the specified state.
+     * @param origState The original state.
+     * @param delay The maximum time to wait for (in milliseconds).
+     * @return The current state.
+     */
+    private StateWS waitForState(final StateWS origState, final long delay)
+    {
+        final long end = System.currentTimeMillis() + delay ;
+        synchronized(this)
+        {
+            while(state == origState)
+            {
+                final long remaining = end - System.currentTimeMillis() ;
+                if (remaining <= 0)
+                {
+                    break ;
+                }
+                try
+                {
+                    wait(remaining) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * Execute the completed transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCompleted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCompleted_1] - Unexpected exception from coordinator completed
+     */
+    private void executeCompleted()
+    {
+        try
+        {
+            coordinator.completed() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCompleted_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Execute the exit transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeExit_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeExit_1] - Unexpected exception from coordinator exit
+     */
+    private void executeExit()
+    {
+        try
+        {
+            coordinator.exit() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeExit_1", th) ;
+            }
+            return ;
+        }
+        sendExited() ;
+        ended() ;
+    }
+
+    /**
+     * Executing the fail transition.
+     *
+     * @throws com.arjuna.webservices.SoapFault for SOAP errors.
+     * @throws java.io.IOException for transport errors.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeFail_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeFail_1] - Unexpected exception from coordinator fail
+     */
+    private void executeFail(final QName exceptionIdentifier)
+    {
+        try
+        {
+            coordinator.fail(exceptionIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeFail_1", th) ;
+            }
+            return ;
+        }
+        sendFailed() ;
+        ended() ;
+    }
+
+    /**
+     * Executing the cannot complete transition.
+     *
+     * @throws com.arjuna.webservices.SoapFault for SOAP errors.
+     * @throws java.io.IOException for transport errors.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCannotComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCannotComplete_1] - Unexpected exception from coordinator cannotComplete
+     */
+    private void executeCannotComplete()
+    {
+        try
+        {
+            coordinator.cannotComplete() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS.executeCannotComplete_1", th) ;
+            }
+            return ;
+        }
+        sendNotCompleted() ;
+        ended() ;
+    }
+
+    /**
+     * End the current coordinator.
+     */
+    private void ended()
+    {
+        changeState(StateWS.STATE_ENDED) ;
+        CoordinatorCompletionCoordinatorProcessorWS.getProcessor().deactivateCoordinator(this) ;
+    }
+
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorCompletionParticipantEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,1074 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.CoordinatorCompletionParticipantInboundEventsWS;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.webservices.wsba.client.CoordinatorCompletionCoordinatorClientWS;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.util.TimerTask;
+
+/**
+ * The coordinator completion participant state engine
+ * @author kevin
+ */
+public class CoordinatorCompletionParticipantEngineWS implements CoordinatorCompletionParticipantInboundEventsWS
+{
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifierWS instanceIdentifier ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final W3CEndpointReference coordinator ;
+    /**
+     * The associated participant
+     */
+    private final BusinessAgreementWithCoordinatorCompletionParticipant participant ;
+    /**
+     * The current state.
+     */
+    private StateWS state ;
+    /**
+     * The associated timer task or null.
+     */
+    private TimerTask timerTask ;
+
+    /**
+     * Construct the initial engine for the participant.
+     * @param id The participant id.
+     * @param coordinator The coordinator endpoint reference.
+     * @param participant The participant.
+     */
+    public CoordinatorCompletionParticipantEngineWS(final String id, final W3CEndpointReference coordinator,
+        final BusinessAgreementWithCoordinatorCompletionParticipant participant)
+    {
+        this(id, coordinator, participant, StateWS.STATE_ACTIVE) ;
+    }
+
+    /**
+     * Construct the engine for the participant in a specified state.
+     * @param id The participant id.
+     * @param coordinator The coordinator endpoint reference.
+     * @param participant The participant.
+     * @param state The initial state.
+     */
+    public CoordinatorCompletionParticipantEngineWS(final String id, final W3CEndpointReference coordinator,
+        final BusinessAgreementWithCoordinatorCompletionParticipant participant, final StateWS state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifierWS(id) ;
+        this.coordinator = coordinator ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Canceling
+     * Canceling -> Canceling
+     * Completing -> Canceling
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (resend Fail)
+     * Failing-Canceling -> Failing-Canceling (resend Fail)
+     * Failing-Completing -> Failing-Completing (resend Fail)
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (resend CannotComplete)
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended (send Canceled)
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_CANCELING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING))
+        {
+            executeCancel() ;
+        }
+        else if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if ((current == StateWS.STATE_FAILING_ACTIVE) || (current == StateWS.STATE_FAILING_CANCELING) ||
+        	 (current == StateWS.STATE_FAILING_COMPLETING))
+        {
+            sendFail(current.getValue()) ;
+        }
+        else if (current == StateWS.STATE_NOT_COMPLETING)
+        {
+            sendCannotComplete() ;
+        }
+        else if (current == StateWS.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendCancelled() ;
+        }
+    }
+
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Closing
+     * Closing -> Closing
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Closed)
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_CLOSING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeClose() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendClosed() ;
+        }
+    }
+
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Compensating
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (resend Fail)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Compensated)
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeCompensate() ;
+        }
+        else if (current == StateWS.STATE_FAILING_COMPENSATING)
+        {
+            sendFail(current.getValue()) ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendCompensated() ;
+        }
+    }
+
+    /**
+     * Handle the complete event.
+     * @param complete The complete notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Completing
+     * Canceling -> Canceling
+     * Completing -> Completing
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (resend Fail)
+     * Failing-Canceling -> Failing-Canceling (resend Fail)
+     * Failing-Completing -> Failing-Completing (resend Fail)
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (resend CannotComplete)
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended (send Fail)
+     */
+    public void complete(final NotificationType complete, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_COMPLETING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executeComplete() ;
+        }
+        else if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if ((current == StateWS.STATE_FAILING_ACTIVE) || (current == StateWS.STATE_FAILING_CANCELING) ||
+        	 (current == StateWS.STATE_FAILING_COMPLETING) || (current == StateWS.STATE_ENDED))
+        {
+            sendFail(current.getValue()) ;
+        }
+        else if (current == StateWS.STATE_NOT_COMPLETING)
+        {
+            sendCannotComplete() ;
+        }
+        else if (current == StateWS.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+    }
+
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Ended
+     * Ended -> Ended
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_EXITING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the failed event.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Ended
+     * Failing-Canceling -> Ended
+     * Failing-Completing -> Ended
+     * Failing-Compensating -> Ended
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void failed(final NotificationType failed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_FAILING_ACTIVE) || (current == StateWS.STATE_FAILING_CANCELING) ||
+                (current == StateWS.STATE_FAILING_COMPLETING) || (current == StateWS.STATE_FAILING_COMPENSATING))
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the not completed event.
+     * @param notCompleted The not completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completing (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> Ended
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void notCompleted(final NotificationType notCompleted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_NOT_COMPLETING)
+            {
+        	ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.getStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.getStatus_1] - Unknown error: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	final StateWS current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV - implement
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    participant.error() ;
+	}
+	catch (final Throwable th) {} // ignore
+    }
+
+    /**
+     * Handle the completed event.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Completed
+     * Completed -> Completed
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS completed()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETING)
+            {
+                changeState(StateWS.STATE_COMPLETED) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_COMPLETING) || (current == StateWS.STATE_COMPLETED))
+        {
+            sendCompleted() ;
+        }
+
+        return current ;
+    }
+
+    /**
+     * Handle the exit event.
+     *
+     * Active -> Exiting
+     * Canceling -> Canceling (invalid state)
+     * Completing -> Exiting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * Exiting -> Exiting
+     * NotCompleting -> NotCompleting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS exit()
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_EXITING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING) ||
+            (current == StateWS.STATE_EXITING))
+        {
+            sendExit() ;
+            return waitForState(StateWS.STATE_EXITING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the fail event.
+     *
+     * Active -> Failing-Active
+     * Canceling -> Failing-Canceling
+     * Completing -> Failing-Completing
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Failing-Compensating
+     * Failing-Active -> Failing-Active
+     * Failing-Canceling -> Failing-Canceling
+     * Failing-Completing -> Failing-Completing
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS fail(final QName exceptionIdentifier)
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_FAILING_ACTIVE) ;
+            }
+            else if (current == StateWS.STATE_CANCELING)
+            {
+        	changeState(StateWS.STATE_FAILING_CANCELING) ;
+            }
+            else if (current == StateWS.STATE_COMPLETING)
+            {
+        	changeState(StateWS.STATE_FAILING_COMPLETING) ;
+            }
+            else if (current == StateWS.STATE_COMPENSATING)
+            {
+                changeState(StateWS.STATE_FAILING_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if (current == StateWS.STATE_CANCELING)
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_CANCELING, TransportTimer.getTransportTimeout()) ;
+        }
+        else if (current == StateWS.STATE_COMPLETING)
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        else if (current == StateWS.STATE_COMPENSATING)
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+        }
+
+        return current ;
+    }
+
+    /**
+     * Handle the cannot complete event.
+     *
+     * Active -> NotCompleting
+     * Canceling -> Canceling (invalid state)
+     * Completing -> NotCompleting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Completing -> Failing-Completing (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS cannotComplete()
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING))
+            {
+                changeState(StateWS.STATE_NOT_COMPLETING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETING) ||
+            (current == StateWS.STATE_NOT_COMPLETING))
+        {
+            sendCannotComplete() ;
+            return waitForState(StateWS.STATE_NOT_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the comms timeout event.
+     *
+     * Completed -> Completed (resend Completed)
+     */
+    private void commsTimeout()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+    }
+
+    /**
+     * Send the exit message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendExit_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendExit_1] - Unexpected exception while sending Exit
+     */
+    private void sendExit()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendExit(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendExit_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the completed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompleted_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompleted_1] - Unexpected exception while sending Completed
+     */
+    private void sendCompleted()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendCompleted(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompleted_1", th) ;
+            }
+        }
+
+        initiateTimer() ;
+    }
+
+    /**
+     * Send the fail message.
+     * @param message The fail message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendFail_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendFail_1] - Unexpected exception while sending Fail
+     */
+    private void sendFail(final QName message)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendFail(coordinator, addressingProperties, instanceIdentifier, message) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendFail_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cancelled message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCancelled_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendCancelled(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCancelled_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the closed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendClosed_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendClosed(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendClosed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the compensated message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompensated_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendCompensated(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCompensated_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the status message.
+     * @param state The state.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendStatus_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final StateWS state)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendStatus(coordinator, addressingProperties, instanceIdentifier, state.getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendStatus_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cannot complete message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCannotComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCannotComplete_1] - Unexpected exception while sending CannotComplete
+     */
+    private void sendCannotComplete()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            CoordinatorCompletionCoordinatorClientWS.getClient().sendCannotComplete(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.sendCannotComplete_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Get the coordinator id.
+     * @return The coordinator id.
+     */
+    public String getId()
+    {
+        return id ;
+    }
+
+    /**
+     * Get the coordinator endpoint reference
+     * @return The coordinator endpoint reference
+     */
+    public W3CEndpointReference getCoordinator()
+    {
+        return coordinator ;
+    }
+
+    /**
+     * Get the associated participant.
+     * @return The associated participant.
+     */
+    public BusinessAgreementWithCoordinatorCompletionParticipant getParticipant()
+    {
+        return participant ;
+    }
+
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final StateWS state)
+    {
+        if (this.state != state)
+        {
+            this.state = state ;
+            notifyAll() ;
+        }
+    }
+
+    /**
+     * Wait for the state to change from the specified state.
+     * @param origState The original state.
+     * @param delay The maximum time to wait for (in milliseconds).
+     * @return The current state.
+     */
+    private StateWS waitForState(final StateWS origState, final long delay)
+    {
+        final long end = System.currentTimeMillis() + delay ;
+        synchronized(this)
+        {
+            while(state == origState)
+            {
+                final long remaining = end - System.currentTimeMillis() ;
+                if (remaining <= 0)
+                {
+                    break ;
+                }
+                try
+                {
+                    wait(remaining) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * Execute the cancel transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCancel_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCancel_1] - Unexpected exception from participant cancel
+     */
+    private void executeCancel()
+    {
+        try
+        {
+            participant.cancel() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCancel_1", th) ;
+            }
+            return ;
+        }
+        sendCancelled() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the close transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeClose_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeClose_1] - Unexpected exception from participant close
+     */
+    private void executeClose()
+    {
+        try
+        {
+            participant.close() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeClose_1", th) ;
+            }
+            return ;
+        }
+        sendClosed() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the compensate transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCompensate_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCompensate_1] - Unexpected exception from participant compensate
+     */
+    private void executeCompensate()
+    {
+        try
+        {
+            participant.compensate() ;
+        }
+        catch (final FaultedException fe)
+        {
+            fail(ArjunaTXConstants.WSARJTX_ELEMENT_FAULTED_QNAME) ;
+        }
+        catch (final Throwable th)
+        {
+            final StateWS current ;
+            synchronized (this)
+            {
+                current = state ;
+                if (current == StateWS.STATE_COMPENSATING)
+                {
+                    changeState(StateWS.STATE_COMPLETED) ;
+                }
+            }
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                initiateTimer() ;
+            }
+
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeCompensate_1", th) ;
+            }
+            return ;
+        }
+
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+        if (current == StateWS.STATE_COMPENSATING)
+        {
+            sendCompensated() ;
+        }
+    }
+
+    /**
+     * Execute the complete transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeComplete_1 [com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeComplete_1] - Unexpected exception from participant compensate
+     */
+    private void executeComplete()
+    {
+        try
+        {
+            participant.complete() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS.executeComplete_1", th) ;
+            }
+            return ;
+        }
+
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETING)
+            {
+                changeState(StateWS.STATE_COMPLETED) ;
+            }
+        }
+        if (current == StateWS.STATE_COMPLETING)
+        {
+            sendCompleted() ;
+        }
+    }
+
+    /**
+     * End the current participant.
+     */
+    private void ended()
+    {
+	changeState(StateWS.STATE_ENDED) ;
+        CoordinatorCompletionParticipantProcessorWS.getProcessor().deactivateParticipant(this) ;
+    }
+    
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+
+        if (state == StateWS.STATE_COMPLETED)
+        {
+            timerTask = new TimerTask() {
+                public void run() {
+                    commsTimeout() ;
+                }
+            } ;
+            TransportTimer.getTimer().schedule(timerTask, TransportTimer.getTransportPeriod()) ;
+        }
+        else
+        {
+            timerTask = null ;
+        }
+    }
+
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/CoordinatorEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,599 @@
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.wsat.StateWS;
+import com.arjuna.webservices.wsat.CoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsat.client.ParticipantClientWS;
+import com.arjuna.webservices.wsat.processors.CoordinatorProcessorWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.wsc.messaging.MessageId;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.addressing.AttributedURI;
+import javax.xml.ws.addressing.AddressingBuilder;
+import javax.xml.ws.addressing.Relationship;
+import java.util.TimerTask;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+/**
+ * The coordinator state engine
+ * @author kevin
+ */
+public class CoordinatorEngineWS implements CoordinatorInboundEventsWS
+{
+    /**
+     * Flag indicating this is a coordinator for a durable participant.
+     */
+    private final boolean durable ;
+    /**
+     * The coordinator id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifierWS instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final W3CEndpointReference participant ;
+    /**
+     * The current state.
+     */
+    private StateWS state ;
+    /**
+     * The flag indicating a read only response.
+     */
+    private boolean readOnly ;
+    /**
+     * The associated timer task or null.
+     */
+    private TimerTask timerTask ;
+
+    /**
+     * Construct the initial engine for the coordinator.
+     * @param id The coordinator id.
+     * @param durable true if the participant is durable, false if volatile.
+     * @param participant The participant endpoint reference.
+     */
+    public CoordinatorEngineWS(final String id, final boolean durable, final W3CEndpointReference participant)
+    {
+        this(id, durable, participant, StateWS.STATE_ACTIVE) ;
+    }
+
+    /**
+     * Construct the engine for the coordinator in a specified state.
+     * @param id The coordinator id.
+     * @param durable true if the participant is durable, false if volatile.
+     * @param participant The participant endpoint reference.
+     * @param state The initial state.
+     */
+    public CoordinatorEngineWS(final String id, final boolean durable, final W3CEndpointReference participant, final StateWS state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifierWS(id) ;
+        this.durable = durable ;
+        this.participant = participant ;
+        this.state = state ;
+        CoordinatorProcessorWS.getProcessor().activateCoordinator(this, id) ;
+    }
+
+    /**
+     * Handle the aborted event.
+     * @param aborted The aborted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * None -> None (ignore)
+     * Active -> Aborting (forget)
+     * Preparing -> Aborting (forget)
+     * PreparedSuccess -> PreparedSuccess (invalid state)
+     * Committing -> Committing (invalid state)
+     * Aborting -> Aborting (forget)
+     */
+    public synchronized void aborted(final Notification aborted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current = state ;
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            changeStateWS(StateWS.STATE_ABORTING) ;
+        }
+        else if ((current == StateWS.STATE_PREPARING) || (current == StateWS.STATE_ABORTING))
+        {
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the committed event.
+     * @param committed The committed notification.
+     * @param addressingProperties The addressing context.
+     * @param 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)
+     */
+    public synchronized void committed(final Notification committed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current = state ;
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            changeStateWS(StateWS.STATE_ABORTING) ;
+        }
+        else if ((current == StateWS.STATE_PREPARING) || (current == StateWS.STATE_COMMITTING))
+        {
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the prepared event.
+     * @param prepared The prepared notification.
+     * @param addressingProperties The addressing context.
+     * @param 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)
+     */
+    public void prepared(final Notification prepared, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeStateWS(StateWS.STATE_ABORTING) ;
+            }
+            else if (current == StateWS.STATE_PREPARING)
+            {
+                changeStateWS(StateWS.STATE_PREPARED_SUCCESS) ;
+            }
+        }
+        if (current == StateWS.STATE_COMMITTING)
+        {
+            sendCommit() ;
+        }
+        else if ((current == StateWS.STATE_ABORTING) || ((current == null) && !readOnly))
+        {
+            if (durable)
+            {
+                sendRollback() ;
+            }
+            else
+            {
+        	    sendInvalidStateWS(addressingProperties, arjunaContext) ;
+            }
+            if (current != null)
+            {
+        	forget() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the readOnly event.
+     * @param readOnly The readOnly notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * None -> None (ignore)
+     * Active -> Active (forget)
+     * Preparing -> Preparing (forget)
+     * PreparedSuccess -> PreparedSuccess (invalid state)
+     * Committing -> Committing (invalid state)
+     * Aborting -> Aborting (forget)
+     */
+    public synchronized void readOnly(final Notification readOnly, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current = state ;
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING) ||
+            (current == StateWS.STATE_ABORTING))
+        {
+            if (current != StateWS.STATE_ABORTING)
+            {
+                this.readOnly = true ;
+            }
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.soapFault_1 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.soapFault_1] - Unexpected SOAP fault for coordinator {0}: {1} {2}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+            final QName subCode = soapFault.getSubcode() ;
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.soapFault_1", new Object[] {instanceIdentifier, soapFaultType, subCode}) ;
+        }
+    }
+
+    /**
+     * 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)
+     */
+    public StateWS prepare()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeStateWS(StateWS.STATE_PREPARING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING))
+        {
+            sendPrepare() ;
+        }
+
+        final StateWS result = waitForStateWS(StateWS.STATE_PREPARING, TransportTimer.getTransportTimeout()) ;
+        if (result != StateWS.STATE_PREPARING)
+        {
+            return result ;
+        }
+
+        synchronized(this)
+        {
+            if ((state == StateWS.STATE_PREPARING) && (timerTask != null))
+            {
+        	timerTask.cancel() ;
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * 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)
+     */
+    public StateWS commit()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_PREPARED_SUCCESS)
+            {
+                changeStateWS(StateWS.STATE_COMMITTING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_PREPARED_SUCCESS) || (current == StateWS.STATE_COMMITTING))
+        {
+            sendCommit() ;
+        }
+
+        final StateWS result = waitForStateWS(StateWS.STATE_COMMITTING, TransportTimer.getTransportTimeout()) ;
+        if (result != StateWS.STATE_COMMITTING)
+        {
+            return result ;
+        }
+
+        synchronized(this)
+        {
+            if ((state == StateWS.STATE_COMMITTING) && (timerTask != null))
+            {
+        	timerTask.cancel() ;
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * 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)
+     */
+    public StateWS rollback()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING) ||
+                (current == StateWS.STATE_PREPARED_SUCCESS))
+            {
+                changeStateWS(StateWS.STATE_ABORTING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING) ||
+            (current == StateWS.STATE_PREPARED_SUCCESS))
+        {
+            sendRollback() ;
+        }
+        else if (current == StateWS.STATE_ABORTING)
+        {
+            forget() ;
+        }
+
+        return waitForStateWS(StateWS.STATE_ABORTING, TransportTimer.getTransportTimeout()) ;
+    }
+
+    /**
+     * Handle the comms timeout event.
+     *
+     * Preparing -> Preparing (resend Prepare)
+     * Committing -> Committing (resend Commit)
+     */
+    private void commsTimeout()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+
+        if (current == StateWS.STATE_PREPARING)
+        {
+            sendPrepare() ;
+        }
+        else if (current == StateWS.STATE_COMMITTING)
+        {
+            sendCommit() ;
+        }
+    }
+
+    /**
+     * Get the coordinator id.
+     * @return The coordinator id.
+     */
+    public String getId()
+    {
+        return id ;
+    }
+
+    /**
+     * Get the participant endpoint reference
+     * @return The participant endpoint reference
+     */
+    public W3CEndpointReference getParticipant()
+    {
+        return participant ;
+    }
+
+    /**
+     * Is the participant durable?
+     * @return true if durable, false otherwise.
+     */
+    public boolean isDurable()
+    {
+        return durable ;
+    }
+
+    /**
+     * Was this a read only response?
+     * @return true if a read only response, false otherwise.
+     */
+    public synchronized boolean isReadOnly()
+    {
+        return readOnly ;
+    }
+
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeStateWS(final StateWS state)
+    {
+        if (this.state != state)
+        {
+            this.state = state ;
+            notifyAll() ;
+        }
+    }
+
+    /**
+     * Wait for the state to change from the specified state.
+     * @param origStateWS The original state.
+     * @param delay The maximum time to wait for (in milliseconds).
+     * @return The current state.
+     */
+    private StateWS waitForStateWS(final StateWS origStateWS, final long delay)
+    {
+        final long end = System.currentTimeMillis() + delay ;
+        synchronized(this)
+        {
+            while(state == origStateWS)
+            {
+                final long remaining = end - System.currentTimeMillis() ;
+                if (remaining <= 0)
+                {
+                    break ;
+                }
+                try
+                {
+                    wait(remaining) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * Forget the current coordinator.
+     */
+    private void forget()
+    {
+        changeStateWS(null) ;
+        CoordinatorProcessorWS.getProcessor().deactivateCoordinator(this) ;
+    }
+
+    /**
+     * Send the prepare message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendPrepare_1 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendPrepare_1] - Unexpecting exception while sending Prepare
+     */
+    private void sendPrepare()
+    {
+        try
+        {
+            ParticipantClientWS.getClient().sendPrepare(participant, createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendPrepare_1", th) ;
+            }
+        }
+
+        initiateTimer() ;
+    }
+
+    /**
+     * Send the commit message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendCommit_1 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendCommit_1] - Unexpecting exception while sending Commit
+     */
+    private void sendCommit()
+    {
+        try
+        {
+            ParticipantClientWS.getClient().sendCommit(participant, createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendCommit_1", th) ;
+            }
+        }
+
+        initiateTimer() ;
+    }
+
+    /**
+     * Send the rollback message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendRollback_1 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendRollback_1] - Unexpecting exception while sending Rollback
+     */
+    private void sendRollback()
+    {
+        try
+        {
+            ParticipantClientWS.getClient().sendRollback(participant, createContext(), instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendRollback_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the InvalidStateWS message.
+     *
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_1 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_1] - Inconsistent internal state.
+     * @message com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_2 [com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_2] - Unexpecting exception while sending InvalidStateWS
+     */
+    private void sendInvalidStateWS(final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        try
+        {
+            final AddressingProperties responseContext = createContext() ;
+            final AttributedURI messageId = addressingProperties.getMessageID() ;
+            final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            if (messageId != null)
+            {
+                AddressingBuilder builder = AddressingBuilder.getAddressingBuilder();
+                Relationship[] relatesTo = new Relationship[] { builder.newRelationship(messageId.getURI()) };
+                responseContext.setRelatesTo(relatesTo);
+            }
+
+            final String message = WSTLogger.log_mesg.getString("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_1") ;
+            final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME, message) ;
+            ParticipantClientWS.getClient().sendSoapFault(participant, responseContext, soapFault, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.CoordinatorEngineWS.sendInvalidStateWS_2", th) ;
+            }
+        }
+    }
+
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+        if ((state == StateWS.STATE_PREPARING) || (state == StateWS.STATE_COMMITTING))
+        {
+            timerTask = new TimerTask() {
+                public void run() {
+                    commsTimeout() ;
+                }
+            } ;
+            TransportTimer.getTimer().schedule(timerTask, TransportTimer.getTransportPeriod()) ;
+        }
+        else
+        {
+            timerTask = null ;
+        }
+    }
+
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionCoordinatorEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,875 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.ParticipantCompletionCoordinatorInboundEventsWS;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionParticipantClientWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BAParticipantManagerWS;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.ExceptionType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * The participant completion coordinator state engine
+ * @author kevin                     cannot
+ */
+public class ParticipantCompletionCoordinatorEngineWS implements ParticipantCompletionCoordinatorInboundEventsWS
+{
+    /**
+     * The coordinator id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifierWS instanceIdentifier ;
+    /**
+     * The participant endpoint reference.
+     */
+    private final W3CEndpointReference participant ;
+    /**
+     * The associated coordinator
+     */
+    private BAParticipantManagerWS coordinator ;
+    /**
+     * The current state.
+     */
+    private StateWS state ;
+
+    /**
+     * Construct the initial engine for the coordinator.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     */
+    public ParticipantCompletionCoordinatorEngineWS(final String id, final W3CEndpointReference participant)
+    {
+        this(id, participant, StateWS.STATE_ACTIVE) ;
+    }
+
+    /**
+     * Construct the engine for the coordinator in a specified state.
+     * @param id The coordinator id.
+     * @param participant The participant endpoint reference.
+     * @param state The initial state.
+     */
+    public ParticipantCompletionCoordinatorEngineWS(final String id, final W3CEndpointReference participant,
+        final StateWS state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifierWS(id) ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+
+    /**
+     * Set the coordinator and register
+     * @param coordinator
+     */
+    public void setCoordinator(final BAParticipantManagerWS coordinator)
+    {
+        this.coordinator = coordinator ;
+        ParticipantCompletionCoordinatorProcessorWS.getProcessor().activateCoordinator(this, id) ;
+    }
+
+    /**
+     * Handle the cancelled event.
+     * @param cancelled The cancelled notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Ended
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_CANCELING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the closed event.
+     * @param closed The closed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Ended
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void closed(final NotificationType closed, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_CLOSING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the compensated event.
+     * @param compensated The compensated notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Ended
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void compensated(final NotificationType compensated, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the completed event.
+     * @param completed The completed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Completed
+     * Canceling -> Compensating
+     * Completed -> Completed
+     * Closing -> Closing (resend Close)
+     * Compensating -> (resend Compensate)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_COMPLETED) ;
+            }
+            else if (current == StateWS.STATE_CANCELING)
+            {
+        	state = StateWS.STATE_COMPENSATING ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executeCompleted() ;
+        }
+        else if (current == StateWS.STATE_CLOSING)
+        {
+            sendClose() ;
+        }
+        else if ((current == StateWS.STATE_CANCELING) || (current == StateWS.STATE_COMPENSATING))
+        {
+            sendCompensate() ;
+        }
+    }
+
+    /**
+     * Handle the exit event.
+     * @param exit The exit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Exiting
+     * Canceling -> Exiting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting
+     * Ended -> Ended (resend Exited)
+     */
+    public void exit(final NotificationType exit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING))
+            {
+                changeState(StateWS.STATE_EXITING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING))
+        {
+            executeExit() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendExited() ;
+        }
+    }
+
+    /**
+     * Handle the fail event.
+     * @param fail The fail exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Failing-Active
+     * Canceling -> Failing-Canceling
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Failing-Compensating
+     * Failing-Active -> Failing-Active
+     * Failing-Canceling -> Failing-Canceling
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend Failed)
+     */
+    public void fail(final ExceptionType fail, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+        	changeState(StateWS.STATE_FAILING_ACTIVE) ;
+            }
+            else if (current == StateWS.STATE_CANCELING)
+            {
+                changeState(StateWS.STATE_FAILING_CANCELING) ;
+            }
+            else if (current == StateWS.STATE_COMPENSATING)
+            {
+                changeState(StateWS.STATE_FAILING_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executeFail(fail.getExceptionIdentifier()) ;
+        }
+        else if ((current == StateWS.STATE_CANCELING) || (current == StateWS.STATE_COMPENSATING))
+        {
+            sendFailed() ;
+            ended() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendFailed() ;
+        }
+    }
+
+    /**
+     * Handle the cannot complete event.
+     * @param cannotComplete The cannotComplete exception.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> NotCompleting
+     * Canceling -> NotCompleting
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (resend NotCompleted)
+     */
+    public void cannotComplete(final NotificationType cannotComplete, final AddressingProperties addressingProperties,
+        final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (state == StateWS.STATE_CANCELING))
+            {
+                changeState(StateWS.STATE_NOT_COMPLETING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING))
+        {
+            executeCannotComplete() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendNotCompleted() ;
+        }
+    }
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	final StateWS current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+        sendStatus(current) ;
+    }
+
+    /**
+     * Handle the status event.
+     * @param status The status.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // TODO - is this correct?
+
+        final StateWS current ;
+	    synchronized(this)
+	    {
+	        current = state ;
+	    }
+        sendStatus(current) ;
+    }
+
+    /**
+     * Handle the get status event.
+     * @return The state.
+     */
+    public synchronized StateWS getStatus()
+    {
+        return state ;
+    }
+
+    /**
+     * Handle the cancel event.
+     * @return The state.
+     *
+     * Active -> Canceling
+     * Canceling -> Canceling
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS cancel()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_CANCELING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_CANCELING))
+        {
+            sendCancel() ;
+            return waitForState(StateWS.STATE_CANCELING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the compensate event.
+     * @return The state.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Compensating
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS compensate()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_COMPENSATING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_COMPLETED) || (current == StateWS.STATE_COMPENSATING))
+        {
+            sendCompensate() ;
+            return waitForState(StateWS.STATE_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the close event.
+     * @return The state.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Closing
+     * Closing -> Closing
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS close()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_CLOSING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_COMPLETED) || (current == StateWS.STATE_CLOSING))
+        {
+            sendClose() ;
+            return waitForState(StateWS.STATE_CLOSING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    // TODO - we cannot do this with JaxWS. need to log something
+	}
+	catch (final Throwable th) {} // ignore
+    }
+
+    /**
+     * Send the close message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendClose_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendClose_1] - Unexpected exception while sending Close
+     */
+    private void sendClose()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendClose(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendClose_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the compensate message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCompensate_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCompensate_1] - Unexpected exception while sending Compensate
+     */
+    private void sendCompensate()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendCompensate(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCompensate_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cancel message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCancel_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCancel_1] - Unexpected exception while sending Cancel
+     */
+    private void sendCancel()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendCancel(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendCancel_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the exited message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendExited_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendExited_1] - Unexpected exception while sending Exited
+     */
+    private void sendExited()
+    {
+        final AddressingProperties addressingProperties  = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendExited(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendExited_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the faulted message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendFailed_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendFailed_1] - Unexpected exception while sending Faulted
+     */
+    private void sendFailed()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendFailed(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendFailed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the not completed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendNotCompleted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendNotCompleted_1] - Unexpected exception while sending NotCompleted
+     */
+    private void sendNotCompleted()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendNotCompleted(participant, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendNotCompleted_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the status message.
+     * @param state The state.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final StateWS state)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionParticipantClientWS.getClient().sendStatus(participant, addressingProperties, instanceIdentifier, state.getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.sendStatus_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Get the coordinator id.
+     * @return The coordinator id.
+     */
+    public String getId()
+    {
+        return id ;
+    }
+
+    /**
+     * Get the participant endpoint reference
+     * @return The participant endpoint reference
+     */
+    public W3CEndpointReference getParticipant()
+    {
+        return participant ;
+    }
+
+    /**
+     * Get the associated coordinator.
+     * @return The associated coordinator.
+     */
+    public BAParticipantManagerWS getCoordinator()
+    {
+        return coordinator;
+    }
+
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final StateWS state)
+    {
+        if (this.state != state)
+        {
+            this.state = state ;
+            notifyAll() ;
+        }
+    }
+
+    /**
+     * Wait for the state to change from the specified state.
+     * @param origState The original state.
+     * @param delay The maximum time to wait for (in milliseconds).
+     * @return The current state.
+     */
+    private StateWS waitForState(final StateWS origState, final long delay)
+    {
+        final long end = System.currentTimeMillis() + delay ;
+        synchronized(this)
+        {
+            while(state == origState)
+            {
+                final long remaining = end - System.currentTimeMillis() ;
+                if (remaining <= 0)
+                {
+                    break ;
+                }
+                try
+                {
+                    wait(remaining) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * Execute the completed transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCompleted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCompleted_1] - Unexpected exception from coordinator completed
+     */
+    private void executeCompleted()
+    {
+        try
+        {
+            coordinator.completed() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCompleted_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Execute the exit transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeExit_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeExit_1] - Unexpected exception from coordinator exit
+     */
+    private void executeExit()
+    {
+        try
+        {
+            coordinator.exit() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeExit_1", th) ;
+            }
+            return ;
+        }
+        sendExited() ;
+        ended() ;
+    }
+
+    /**
+     * Executing the fail transition.
+     *
+     * @throws com.arjuna.webservices.SoapFault for SOAP errors.
+     * @throws java.io.IOException for transport errors.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeFault_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeFault_1] - Unexpected exception from coordinator fault
+     */
+    private void executeFail(QName fail)
+    {
+        try
+        {
+            coordinator.fail(fail) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeFault_1", th) ;
+            }
+            return ;
+        }
+        sendFailed() ;
+        ended() ;
+    }
+
+    /**
+     * Executing the cannot complete transition.
+     *
+     * @throws SoapFault for SOAP errors.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCannotComplete_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCannotComplete_1] - Unexpected exception from coordinator error
+     */
+    private void executeCannotComplete()
+    {
+        try
+        {
+            coordinator.cannotComplete() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS.executeCannotComplete_1", th) ;
+            }
+            return ;
+        }
+        sendNotCompleted() ;
+        ended() ;
+    }
+    /**
+     * End the current coordinator.
+     */
+    private void ended()
+    {
+        changeState(StateWS.STATE_ENDED) ;
+        ParticipantCompletionCoordinatorProcessorWS.getProcessor().deactivateCoordinator(this) ;
+    }
+
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId);
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantCompletionParticipantEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,953 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsba.ParticipantCompletionParticipantInboundEventsWS;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.webservices.wsba.client.ParticipantCompletionCoordinatorClientWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.NotificationType;
+import org.oasis_open.docs.ws_tx.wsba._2006._06.StatusType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.util.TimerTask;
+
+/**
+ * The participant completion participant state engine
+ * @author kevin
+ */
+public class ParticipantCompletionParticipantEngineWS implements ParticipantCompletionParticipantInboundEventsWS
+{
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The instance identifier.
+     */
+    private final InstanceIdentifierWS instanceIdentifier ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final W3CEndpointReference coordinator ;
+    /**
+     * The associated participant
+     */
+    private final BusinessAgreementWithParticipantCompletionParticipant participant ;
+    /**
+     * The current state.
+     */
+    private StateWS state ;
+    /**
+     * The associated timer task or null.
+     */
+    private TimerTask timerTask ;
+
+    /**
+     * Construct the initial engine for the participant.
+     * @param id The participant id.
+     * @param coordinator The coordinator endpoint reference.
+     * @param participant The participant.
+     */
+    public ParticipantCompletionParticipantEngineWS(final String id, final W3CEndpointReference coordinator,
+        final BusinessAgreementWithParticipantCompletionParticipant participant)
+    {
+        this(id, coordinator, participant, StateWS.STATE_ACTIVE) ;
+    }
+
+    /**
+     * Construct the engine for the participant in a specified state.
+     * @param id The participant id.
+     * @param coordinator The coordinator endpoint reference.
+     * @param participant The participant.
+     * @param state The initial state.
+     */
+    public ParticipantCompletionParticipantEngineWS(final String id, final W3CEndpointReference coordinator,
+        final BusinessAgreementWithParticipantCompletionParticipant participant, final StateWS state)
+    {
+        this.id = id ;
+        this.instanceIdentifier = new InstanceIdentifierWS(id) ;
+        this.coordinator = coordinator ;
+        this.participant = participant ;
+        this.state = state ;
+    }
+
+    /**
+     * Handle the cancel event.
+     * @param cancel The cancel notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Canceling
+     * Canceling -> Canceling
+     * Completed -> Completed (resend Completed)
+     * Closing -> Closing
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (resend Fail)
+     * Failing-Canceling -> Failing-Canceling (resend Fail)
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (resend CannotComplete)
+     * Exiting -> Exiting (resend Exit)
+     * Ended -> Ended (resend Cancelled)
+     */
+    public void cancel(final NotificationType cancel, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_CANCELING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executeCancel() ;
+        }
+        else if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+        else if ((current == StateWS.STATE_FAILING_ACTIVE) || (current == StateWS.STATE_FAILING_CANCELING))
+        {
+            sendFail(current.getValue()) ;
+        }
+        else if (current == StateWS.STATE_NOT_COMPLETING)
+        {
+            sendCannotComplete() ;
+        }
+        else if (current == StateWS.STATE_EXITING)
+        {
+            sendExit() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendCancelled() ;
+        }
+    }
+
+    /**
+     * Handle the close event.
+     * @param close The close notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Closing
+     * Closing -> Closing
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Closed)
+     */
+    public void close(final NotificationType close, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_CLOSING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeClose() ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendClosed() ;
+        }
+    }
+
+    /**
+     * Handle the compensate event.
+     * @param compensate The compensate notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Compensating
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (resend Fail)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (send Compensated)
+     */
+    public void compensate(final NotificationType compensate, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPLETED)
+            {
+                changeState(StateWS.STATE_COMPENSATING) ;
+            }
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            if (timerTask != null)
+            {
+                timerTask.cancel() ;
+            }
+            executeCompensate() ;
+        }
+        else if (current == StateWS.STATE_FAILING_COMPENSATING)
+        {
+            sendFail(current.getValue()) ;
+        }
+        else if (current == StateWS.STATE_ENDED)
+        {
+            sendCompensated() ;
+        }
+    }
+
+    /**
+     * Handle the exited event.
+     * @param exited The exited notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Ended
+     * Ended -> Ended
+     */
+    public void exited(final NotificationType exited, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_EXITING)
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the failed event.
+     * @param failed The failed notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Ended
+     * Failing-Canceling -> Ended
+     * Failing-Compensating -> Ended
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void failed(final NotificationType failed,  final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_FAILING_ACTIVE) || (current == StateWS.STATE_FAILING_CANCELING) ||
+                (current == StateWS.STATE_FAILING_COMPENSATING))
+            {
+                ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the not completed event.
+     * @param notCompleted The notCompleted notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * Active -> Active (invalid state)
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> Ended
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended
+     */
+    public void notCompleted(final NotificationType notCompleted, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_NOT_COMPLETING)
+            {
+        	ended() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the getStatus event.
+     * @param getStatus The getStatus notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.getStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.getStatus_1] - Unknown error: {0}
+     */
+    public void getStatus(final NotificationType getStatus, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	final StateWS current ;
+	synchronized(this)
+	{
+	    current = state ;
+	}
+	sendStatus(current) ;
+    }
+
+    /**
+     * Handle the status event.
+     * @param status The status type.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void status(final StatusType status, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        // KEV - implement
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+	ended() ;
+	try
+	{
+	    participant.error() ;
+	}
+	catch (final Throwable th) {} // ignore
+    }
+
+    /**
+     * Handle the completed event.
+     *
+     * Active -> Completed
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS completed()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_COMPLETED) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_COMPLETED))
+        {
+            sendCompleted() ;
+        }
+
+        return current ;
+    }
+
+    /**
+     * Handle the exit event.
+     *
+     * Active -> Exiting
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS exit()
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_EXITING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_EXITING))
+        {
+            sendExit() ;
+        }
+
+        return waitForState(StateWS.STATE_EXITING, TransportTimer.getTransportTimeout()) ;
+    }
+
+    /**
+     * Handle the fail event.
+     *
+     * Active -> Failing-Active
+     * Canceling -> Failing-Canceling
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Failing-Compensating
+     * Failing-Active -> Failing-Active
+     * Failing-Canceling -> Failing-Canceling
+     * Failing-Compensating -> Failing-Compensating
+     * NotCompleting -> NotCompleting (invalid state)
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS fail(final QName exceptionIdentifier)
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_FAILING_ACTIVE) ;
+            }
+            else if (current == StateWS.STATE_CANCELING)
+            {
+        	changeState(StateWS.STATE_FAILING_CANCELING) ;
+            }
+            else if (current == StateWS.STATE_COMPENSATING)
+            {
+                changeState(StateWS.STATE_FAILING_COMPENSATING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_FAILING_ACTIVE))
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_ACTIVE, TransportTimer.getTransportTimeout()) ;
+        }
+        else if ((current == StateWS.STATE_CANCELING) || (current == StateWS.STATE_FAILING_CANCELING))
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_CANCELING, TransportTimer.getTransportTimeout()) ;
+        }
+        else if ((current == StateWS.STATE_COMPENSATING) || (current == StateWS.STATE_FAILING_COMPENSATING))
+        {
+            sendFail(exceptionIdentifier) ;
+            return waitForState(StateWS.STATE_FAILING_COMPENSATING, TransportTimer.getTransportTimeout()) ;
+        }
+
+        return current ;
+    }
+
+    /**
+     * Handle the cannot complete event.
+     *
+     * Active -> NotCompleting
+     * Canceling -> Canceling (invalid state)
+     * Completed -> Completed (invalid state)
+     * Closing -> Closing (invalid state)
+     * Compensating -> Compensating (invalid state)
+     * Failing-Active -> Failing-Active (invalid state)
+     * Failing-Canceling -> Failing-Canceling (invalid state)
+     * Failing-Compensating -> Failing-Compensating (invalid state)
+     * NotCompleting -> NotCompleting
+     * Exiting -> Exiting (invalid state)
+     * Ended -> Ended (invalid state)
+     */
+    public StateWS cannotComplete()
+    {
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                changeState(StateWS.STATE_NOT_COMPLETING) ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_NOT_COMPLETING))
+        {
+            sendCannotComplete() ;
+            return waitForState(StateWS.STATE_NOT_COMPLETING, TransportTimer.getTransportTimeout()) ;
+        }
+        return current ;
+    }
+
+    /**
+     * Handle the comms timeout event.
+     *
+     * Completed -> Completed (resend Completed)
+     */
+    private void commsTimeout()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+
+        if (current == StateWS.STATE_COMPLETED)
+        {
+            sendCompleted() ;
+        }
+    }
+
+    /**
+     * Send the exit message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendExit_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendExit_1] - Unexpected exception while sending Exit
+     */
+    private void sendExit()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendExit(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendExit_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the completed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompleted_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompleted_1] - Unexpected exception while sending Completed
+     */
+    private void sendCompleted()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendCompleted(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompleted_1", th) ;
+            }
+        }
+
+        initiateTimer() ;
+    }
+
+    /**
+     * Send the fail message.
+     * @param message The fail message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendFail_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendFail_1] - Unexpected exception while sending Fault
+     */
+    private void sendFail(final QName message)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendFail(coordinator, addressingProperties, instanceIdentifier, message) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendFail_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cancelled message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCancelled_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCancelled_1] - Unexpected exception while sending Cancelled
+     */
+    private void sendCancelled()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendCancelled(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCancelled_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the closed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendClosed_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendClosed_1] - Unexpected exception while sending Closed
+     */
+    private void sendClosed()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendClosed(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendClosed_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the compensated message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompensated_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompensated_1] - Unexpected exception while sending Compensated
+     */
+    private void sendCompensated()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendCompensated(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCompensated_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the status message.
+     * @param state The state.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendStatus_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendStatus_1] - Unexpected exception while sending Status
+     */
+    private void sendStatus(final StateWS state)
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendStatus(coordinator, addressingProperties, instanceIdentifier, state.getValue()) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendStatus_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the cannot complete message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCannotComplete_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCannotComplete_1] - Unexpected exception while sending Status
+     */
+    private void sendCannotComplete()
+    {
+        final AddressingProperties addressingProperties = createContext() ;
+        try
+        {
+            ParticipantCompletionCoordinatorClientWS.getClient().sendCannotComplete(coordinator, addressingProperties, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.sendCannotComplete_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Get the coordinator id.
+     * @return The coordinator id.
+     */
+    public String getId()
+    {
+        return id ;
+    }
+
+    /**
+     * Get the coordinator endpoint reference
+     * @return The coordinator endpoint reference
+     */
+    public W3CEndpointReference getCoordinator()
+    {
+        return coordinator ;
+    }
+
+    /**
+     * Get the associated participant.
+     * @return The associated participant.
+     */
+    public BusinessAgreementWithParticipantCompletionParticipant getParticipant()
+    {
+        return participant ;
+    }
+
+    /**
+     * Change the state and notify any listeners.
+     * @param state The new state.
+     */
+    private synchronized void changeState(final StateWS state)
+    {
+        if (this.state != state)
+        {
+            this.state = state ;
+            notifyAll() ;
+        }
+    }
+
+    /**
+     * Wait for the state to change from the specified state.
+     * @param origState The original state.
+     * @param delay The maximum time to wait for (in milliseconds).
+     * @return The current state.
+     */
+    private StateWS waitForState(final StateWS origState, final long delay)
+    {
+        final long end = System.currentTimeMillis() + delay ;
+        synchronized(this)
+        {
+            while(state == origState)
+            {
+                final long remaining = end - System.currentTimeMillis() ;
+                if (remaining <= 0)
+                {
+                    break ;
+                }
+                try
+                {
+                    wait(remaining) ;
+                }
+                catch (final InterruptedException ie) {} // ignore
+            }
+            return state ;
+        }
+    }
+
+    /**
+     * Execute the cancel transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeCancel_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeCancel_1] - Unexpected exception from participant cancel
+     */
+    private void executeCancel()
+    {
+        try
+        {
+            participant.cancel() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeCancel_1", th) ;
+            }
+            return ;
+        }
+        sendCancelled() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the close transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeClose_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeClose_1] - Unexpected exception from participant close
+     */
+    private void executeClose()
+    {
+        try
+        {
+            participant.close() ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeClose_1", th) ;
+            }
+            return ;
+        }
+        sendClosed() ;
+        ended() ;
+    }
+
+    /**
+     * Execute the compensate transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeCompensate_1 [com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeCompensate_1] - Unexpected exception from participant compensate
+     */
+    private void executeCompensate()
+    {
+        try
+        {
+            participant.compensate() ;
+        }
+        catch (final FaultedException fe)
+        {
+            // TODO - use the right value here -- shoudl be a QName for Faulted (Kev's 1.1 code uses JBOSSTX.FAULTED_ERROR_CODE_QNAME)
+            fail(ArjunaTXConstants.WSARJTX_ELEMENT_FAULTED_QNAME);
+        }
+        catch (final Throwable th)
+        {
+            final StateWS current ;
+            synchronized (this)
+            {
+                current = state ;
+                if (current == StateWS.STATE_COMPENSATING)
+                {
+                    changeState(StateWS.STATE_COMPLETED) ;
+                }
+            }
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                initiateTimer() ;
+            }
+
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS.executeClose_1", th) ;
+            }
+            return ;
+        }
+
+        final StateWS current ;
+        synchronized (this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_COMPENSATING)
+            {
+                ended() ;
+            }
+        }
+        if (current == StateWS.STATE_COMPENSATING)
+        {
+            sendCompensated() ;
+        }
+    }
+
+    /**
+     * End the current participant.
+     */
+    private void ended()
+    {
+	changeState(StateWS.STATE_ENDED) ;
+        ParticipantCompletionParticipantProcessorWS.getProcessor().deactivateParticipant(this) ;
+    }
+
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+
+        if (state == StateWS.STATE_COMPLETED)
+        {
+            timerTask = new TimerTask() {
+                public void run() {
+                    commsTimeout() ;
+                }
+            } ;
+            TransportTimer.getTimer().schedule(timerTask, TransportTimer.getTransportPeriod()) ;
+        }
+        else
+        {
+            timerTask = null ;
+        }
+    }
+
+    /**
+     * Create a context for the outgoing message.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId) ;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngineWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngineWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/messaging/engines/ParticipantEngineWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,575 @@
+package com.arjuna.wst.messaging.engines;
+
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.util.TransportTimer;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsat.ParticipantInboundEventsWS;
+import com.arjuna.webservices.wsat.StateWS;
+import com.arjuna.webservices.wsat.client.CoordinatorClientWS;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessorWS;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.*;
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import java.util.TimerTask;
+
+/**
+ * The participant state engine
+ * @author kevin
+ */
+public class ParticipantEngineWS implements ParticipantInboundEventsWS
+{
+    /**
+     * The associated participant
+     */
+    private final Participant participant ;
+    /**
+     * The participant id.
+     */
+    private final String id ;
+    /**
+     * The coordinator endpoint reference.
+     */
+    private final W3CEndpointReference coordinator ;
+    /**
+     * The current state.
+     */
+    private StateWS state ;
+    /**
+     * The associated timer task or null.
+     */
+    private TimerTask timerTask ;
+
+    /**
+     * Construct the initial engine for the participant.
+     * @param participant The participant.
+     * @param id The participant id.
+     * @param coordinator The coordinator endpoint reference.
+     */
+    public ParticipantEngineWS(final Participant participant, final String id, final W3CEndpointReference coordinator)
+    {
+        this(participant, id, StateWS.STATE_ACTIVE, coordinator) ;
+    }
+
+    /**
+     * Construct the engine for the participant in a specified state.
+     * @param participant The participant.
+     * @param id The participant id.
+     * @param state The initial state.
+     * @param coordinator The coordinator endpoint reference.
+     */
+    public ParticipantEngineWS(final Participant participant, final String id, final StateWS state, final W3CEndpointReference coordinator)
+    {
+        this.participant = participant ;
+        this.id = id ;
+        this.state = state ;
+        this.coordinator = coordinator ;
+    }
+
+    /**
+     * Handle the commit event.
+     * @param commit The commit notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * None -> None (send committed)
+     * Active -> Aborting (do nothing)
+     * Preparing -> Aborting (do nothing)
+     * PreparedSuccess -> Committing (initiate commit)
+     * Committing -> Committing (do nothing)
+     * Aborting -> Aborting (do nothing)
+     */
+    public void commit(final Notification commit, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_PREPARED_SUCCESS)
+            {
+                state = StateWS.STATE_COMMITTING ;
+                if (timerTask != null)
+                {
+                    timerTask.cancel() ;
+                }
+            }
+            else if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING))
+            {
+                state = StateWS.STATE_ABORTING ;
+            }
+        }
+
+        if (current == StateWS.STATE_PREPARED_SUCCESS)
+        {
+            executeCommit() ;
+        }
+        else if (current == null)
+        {
+            sendCommitted() ;
+        }
+    }
+
+    /**
+     * Handle the prepare event.
+     * @param prepare The prepare notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * None -> None (send aborted)
+     * Active -> Preparing (execute prepare)
+     * Preparing -> Preparing (do nothing)
+     * PreparedSuccess -> PreparedSuccess (resend prepared)
+     * Committing -> Committing (ignore)
+     * Aborting -> Aborting (send aborted and forget)
+     */
+    public void prepare(final Notification prepare, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_ACTIVE)
+            {
+                state = StateWS.STATE_PREPARING ;
+            }
+        }
+
+        if (current == StateWS.STATE_ACTIVE)
+        {
+            executePrepare() ;
+        }
+        else if (current == StateWS.STATE_PREPARED_SUCCESS)
+        {
+            sendPrepared() ;
+        }
+        else if ((current == StateWS.STATE_ABORTING) || (current == null))
+        {
+            sendAborted() ;
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the rollback event.
+     * @param rollback The rollback notification.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * None -> None (send aborted)
+     * Active -> Aborting (execute rollback, send aborted and forget)
+     * Preparing -> Aborting (execute rollback, send aborted and forget)
+     * PreparedSuccess -> Aborting (execute rollback, send aborted and forget)
+     * Committing -> Committing (ignore)
+     * Aborting -> Aborting (send aborted and forget)
+     */
+    public void rollback(final Notification rollback, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING) ||
+                (current == StateWS.STATE_PREPARED_SUCCESS))
+            {
+                state = StateWS.STATE_ABORTING ;
+            }
+        }
+
+        if (current != StateWS.STATE_COMMITTING)
+        {
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING) ||
+                (current == StateWS.STATE_PREPARED_SUCCESS))
+            {
+                if (!executeRollback())
+                {
+                    return ;
+                }
+            }
+
+            sendAborted() ;
+
+            if (current != null)
+            {
+                forget() ;
+            }
+        }
+    }
+
+    /**
+     * Handle the soap fault event.
+     * @param soapFault The soap fault.
+     * @param addressingProperties The addressing context.
+     * @param arjunaContext The arjuna context.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.soapFault_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.soapFault_1] - Unexpected SOAP fault for participant {0}: {1} {2}
+     */
+    public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties, final ArjunaContextWS arjunaContext)
+    {
+        if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+        {
+            final InstanceIdentifierWS instanceIdentifier = arjunaContext.getInstanceIdentifier() ;
+            final SoapFaultType soapFaultType = soapFault.getSoapFaultType() ;
+            final QName subCode = soapFault.getSubcode() ;
+            WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.soapFault_1", new Object[] {instanceIdentifier, soapFaultType, subCode}) ;
+        }
+
+        if (CoordinationConstantsWS.WSCOOR_ERROR_CODE_INVALID_STATE_QNAME.equals(soapFault.getSubcode()))
+        {
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the commit decision event.
+     *
+     * Preparing -> PreparedSuccess (send Prepared)
+     * Committing -> Committing (send committed and forget)
+     */
+    private void commitDecision()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if (current == StateWS.STATE_PREPARING)
+            {
+                state = StateWS.STATE_PREPARED_SUCCESS ;
+            }
+        }
+
+        if (current == StateWS.STATE_PREPARING)
+        {
+            sendPrepared() ;
+        }
+        else if (current == StateWS.STATE_COMMITTING)
+        {
+            sendCommitted() ;
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the readOnly decision event.
+     *
+     * Active -> None (send ReadOnly)
+     * Preparing -> None (send ReadOnly)
+     */
+    private void readOnlyDecision()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING))
+            {
+        	state = null ;
+            }
+        }
+
+        if ((current == StateWS.STATE_ACTIVE) || (current == StateWS.STATE_PREPARING))
+        {
+            sendReadOnly() ;
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the rollback decision event.
+     *
+     * Active -> Aborting (send aborted)
+     * Preparing -> Aborting (send aborted)
+     */
+    private void rollbackDecision()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+            if ((current == StateWS.STATE_PREPARING) || (current == StateWS.STATE_ACTIVE))
+            {
+                state = StateWS.STATE_ABORTING ;
+            }
+        }
+
+        if ((current == StateWS.STATE_PREPARING) || (current == StateWS.STATE_ACTIVE))
+        {
+            sendAborted() ;
+            forget() ;
+        }
+    }
+
+    /**
+     * Handle the comms timeout event.
+     *
+     * PreparedSuccess -> PreparedSuccess (resend Prepared)
+     */
+    private void commsTimeout()
+    {
+        final StateWS current ;
+        synchronized(this)
+        {
+            current = state ;
+        }
+
+        if (current == StateWS.STATE_PREPARED_SUCCESS)
+        {
+            sendPrepared() ;
+        }
+    }
+
+    /**
+     * Execute the commit transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeCommit_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeCommit_1] - Unexpected exception from participant commit
+     */
+    private void executeCommit()
+    {
+        try
+        {
+            participant.commit() ;
+            commitDecision() ;
+        }
+        catch (final Throwable th)
+        {
+            synchronized(this)
+            {
+                if (state == StateWS.STATE_COMMITTING)
+                {
+            	    state = StateWS.STATE_PREPARED_SUCCESS ;
+                }
+            }
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeCommit_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Execute the rollback transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeRollback_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeRollback_1] - Unexpected exception from participant rollback
+     */
+    private boolean executeRollback()
+    {
+        try
+        {
+            participant.rollback() ;
+        }
+        catch (final SystemException se)
+        {
+            return false ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.executeRollback_1", th) ;
+            }
+        }
+        return true ;
+    }
+
+    /**
+     * Execute the prepare transition.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_1] - Unexpected exception from participant prepare
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_2 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_2] - Unexpected result from participant prepare: {0}
+     */
+    private void executePrepare()
+    {
+        final Vote vote ;
+        try
+        {
+            vote = participant.prepare();
+        }
+        catch (final SystemException se)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_1", se) ;
+            }
+            return ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_1", th) ;
+            }
+            rollbackDecision() ;
+            return ;
+        }
+
+        if (vote instanceof Prepared)
+        {
+            commitDecision() ;
+        }
+        else if (vote instanceof ReadOnly)
+        {
+            readOnlyDecision() ;
+        }
+        else if (vote instanceof Aborted)
+        {
+            rollbackDecision() ;
+        }
+        else
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.executePrepare_2", new Object[] {(vote == null ? "null" : vote.getClass().getName())}) ;
+            }
+            rollbackDecision() ;
+        }
+    }
+
+    /**
+     * Forget the current participant.
+     */
+    private void forget()
+    {
+        synchronized(this)
+        {
+            state = null ;
+        }
+        ParticipantProcessorWS.getProcessor().deactivateParticipant(this) ;
+    }
+
+    /**
+     * Send the committed message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendCommitted_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendCommitted_1] - Unexpected exception while sending Committed
+     */
+    private void sendCommitted()
+    {
+        final AddressingProperties responseAddressingContext = createContext() ;
+        final InstanceIdentifierWS instanceIdentifier = new InstanceIdentifierWS(id) ;
+        try
+        {
+            CoordinatorClientWS.getClient().sendCommitted(coordinator, responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendCommitted_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the prepared message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendPrepared_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendPrepared_1] - Unexpected exception while sending Prepared
+     */
+    private void sendPrepared()
+    {
+        final AddressingProperties responseAddressingContext = createContext() ;
+        final InstanceIdentifierWS instanceIdentifier = new InstanceIdentifierWS(id) ;
+        try
+        {
+            CoordinatorClientWS.getClient().sendPrepared(coordinator, responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendPrepared_1", th) ;
+            }
+        }
+
+        initiateTimer() ;
+    }
+
+    /**
+     * Send the aborted message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendAborted_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendAborted_1] - Unexpected exception while sending Aborted
+     */
+    private void sendAborted()
+    {
+        final AddressingProperties responseAddressingContext = createContext() ;
+        final InstanceIdentifierWS instanceIdentifier = new InstanceIdentifierWS(id) ;
+        try
+        {
+            CoordinatorClientWS.getClient().sendAborted(coordinator, responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendAborted_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Send the read only message.
+     *
+     * @message com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendReadOnly_1 [com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendReadOnly_1] - Unexpected exception while sending ReadOnly
+     */
+    private void sendReadOnly()
+    {
+        final AddressingProperties responseAddressingContext = createContext() ;
+        final InstanceIdentifierWS instanceIdentifier = new InstanceIdentifierWS(id) ;
+        try
+        {
+            CoordinatorClientWS.getClient().sendReadOnly(coordinator, responseAddressingContext, instanceIdentifier) ;
+        }
+        catch (final Throwable th)
+        {
+            if (WSTLogger.arjLoggerI18N.isDebugEnabled())
+            {
+                WSTLogger.arjLoggerI18N.debug("com.arjuna.wst.messaging.engines.ParticipantEngineWS.sendReadOnly_1", th) ;
+            }
+        }
+    }
+
+    /**
+     * Initiate the timer.
+     */
+    private synchronized void initiateTimer()
+    {
+        if (timerTask != null)
+        {
+            timerTask.cancel() ;
+        }
+
+        if (state == StateWS.STATE_PREPARED_SUCCESS)
+        {
+            timerTask = new TimerTask() {
+                public void run() {
+                    commsTimeout() ;
+                }
+            } ;
+            TransportTimer.getTimer().schedule(timerTask, TransportTimer.getTransportPeriod()) ;
+        }
+        else
+        {
+            timerTask = null ;
+        }
+    }
+
+    /**
+     * Create a response context from the incoming context.
+     * @return The addressing context.
+     */
+    private AddressingProperties createContext()
+    {
+        final String messageId = MessageId.getMessageId() ;
+        return AddressingHelper.createNotificationContext(messageId) ;
+    }
+    
+    public W3CEndpointReference getCoordinator()
+    {
+        return coordinator;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BACoordinatorCompletionParticipantManagerStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,131 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS;
+
+import javax.xml.namespace.QName;
+
+public class BACoordinatorCompletionParticipantManagerStubWS implements com.arjuna.wst.BAParticipantManagerWS
+{
+    private final CoordinatorCompletionParticipantEngineWS coordinator ;
+
+    public BACoordinatorCompletionParticipantManagerStubWS(final CoordinatorCompletionParticipantEngineWS coordinator)
+        throws Exception
+    {
+        this.coordinator = coordinator ;
+    }
+
+    public void exit ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state
+         * Exiting -> no response
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.exit() ;
+        if (state == StateWS.STATE_EXITING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void completed ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        // returns original state
+        final StateWS state = coordinator.completed() ;
+        if ((state != StateWS.STATE_ACTIVE) && (state != StateWS.STATE_COMPLETED))
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void cannotComplete()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completing -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Failing-Active -> illegal state
+         * Failing-Canceling -> illegal state
+         * Failing-Completing -> illegal state
+         * Failing-Compensating -> illegal state
+         * NotCompleting -> no response
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.cannotComplete() ;
+        if (state == StateWS.STATE_NOT_COMPLETING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void fail (final QName exceptionIdentifier)
+        throws SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completing -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Failing-Active -> no response
+         * Failing-Canceling -> no response
+         * Failing-Completing -> no response
+         * Failing-Compensating -> no response
+         * NotCompleting -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.fail(exceptionIdentifier) ;
+        if (state != StateWS.STATE_ENDED)
+        {
+            throw new SystemException() ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BAParticipantCompletionParticipantManagerStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS;
+
+import javax.xml.namespace.QName;
+
+public class BAParticipantCompletionParticipantManagerStubWS implements com.arjuna.wst.BAParticipantManagerWS
+{
+    private final ParticipantCompletionParticipantEngineWS coordinator ;
+
+    public BAParticipantCompletionParticipantManagerStubWS(final ParticipantCompletionParticipantEngineWS coordinator)
+        throws Exception
+    {
+        this.coordinator = coordinator ;
+    }
+
+    public synchronized void exit ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Failing-Active -> illegal state
+         * Failing-Canceling -> illegal state
+         * Failing-Compensating -> illegal state
+         * NotCompleting -> illegal state
+         * Exiting -> no response
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.exit() ;
+        if (state == StateWS.STATE_EXITING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void completed ()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        // returns original state
+        final StateWS state = coordinator.completed() ;
+        if ((state != StateWS.STATE_ACTIVE) && (state != StateWS.STATE_COMPLETED))
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void cannotComplete()
+        throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Failing-Active -> illegal state
+         * Failing-Canceling -> illegal state
+         * Failing-Compensating -> illegal state
+         * NotCompleting -> no response
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.cannotComplete() ;
+        if (state == StateWS.STATE_NOT_COMPLETING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void fail (final QName exceptionIdentifier)
+        throws SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Failing-Active -> no response
+         * Failing-Canceling -> no response
+         * Failing-Compensating -> no response
+         * NotCompleting -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = coordinator.fail(exceptionIdentifier) ;
+        if (state != StateWS.STATE_ENDED)
+        {
+            throw new SystemException() ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessActivityTerminatorStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,399 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessActivityTerminatorStub.java,v 1.7.6.1 2005/11/22 10:35:29 kconner Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import com.arjuna.schemas.ws._2005._10.wsarjtx.NotificationType;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.SoapFaultType;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.client.TerminationCoordinatorClientWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantCallbackWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationParticipantProcessorWS;
+import com.arjuna.wsc.messaging.MessageId;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+public class BusinessActivityTerminatorStubWS implements com.arjuna.wst.BusinessActivityTerminatorWS
+{
+    private W3CEndpointReference _terminationCoordinator = null;
+    private final String _id ;
+
+    public BusinessActivityTerminatorStubWS(final String id, final W3CEndpointReference terminationCoordinator)
+        throws Exception
+    {
+        _terminationCoordinator = terminationCoordinator;
+        _id = id ;
+    }
+
+    public void close ()
+        throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessorWS terminationParticipantProcessor = TerminationParticipantProcessorWS.getProcessor() ;
+        terminationParticipantProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClientWS.getClient().sendClose(_terminationCoordinator, addressingProperties, new InstanceIdentifierWS(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminationParticipantProcessor.removeCallback(_id) ;
+        }
+
+        if (callback.hasTriggered())
+        {
+            if (callback.receivedClosed())
+            {
+                return ;
+            }
+            final SoapFault soapFault = callback.getSoapFault() ;
+            if (soapFault != null)
+            {
+                final QName subcode = soapFault.getSubcode() ;
+                if (ArjunaTXConstants.TRANSACTIONROLLEDBACK_ERROR_CODE_QNAME.equals(subcode))
+                {
+                    throw new TransactionRolledBackException();
+                }
+                else if (ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME.equals(subcode))
+                {
+                    throw new UnknownTransactionException() ;
+                }
+            }
+        }
+        throw new SystemException() ;
+    }
+
+    public void cancel ()
+        throws FaultedException, UnknownTransactionException, SystemException
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessorWS terminationParticipantProcessor = TerminationParticipantProcessorWS.getProcessor() ;
+        terminationParticipantProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClientWS.getClient().sendCancel(_terminationCoordinator, addressingProperties, new InstanceIdentifierWS(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminationParticipantProcessor.removeCallback(_id) ;
+        }
+
+        if (callback.hasTriggered())
+        {
+            if (callback.receivedCancelled())
+            {
+                return ;
+            }
+            else if (callback.receivedFaulted())
+            {
+                throw new FaultedException() ;
+            }
+            final SoapFault soapFault = callback.getSoapFault() ;
+            if (soapFault != null)
+            {
+                final QName subcode = soapFault.getSubcode() ;
+                if (ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME.equals(subcode))
+                {
+                    throw new UnknownTransactionException() ;
+                }
+            }
+        }
+        throw new SystemException() ;
+    }
+
+    public void complete ()
+        throws FaultedException, UnknownTransactionException, SystemException
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+
+        final RequestCallback callback = new RequestCallback() ;
+        final TerminationParticipantProcessorWS terminationParticipantProcessor = TerminationParticipantProcessorWS.getProcessor() ;
+        terminationParticipantProcessor.registerCallback(_id, callback) ;
+        try
+        {
+            TerminationCoordinatorClientWS.getClient().sendComplete(_terminationCoordinator, addressingProperties, new InstanceIdentifierWS(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+        finally
+        {
+            terminationParticipantProcessor.removeCallback(_id) ;
+        }
+
+        if (callback.hasTriggered())
+        {
+            if (callback.receivedCompleted())
+            {
+                return ;
+            }
+            else if (callback.receivedFaulted())
+            {
+                throw new FaultedException() ;
+            }
+            final SoapFault soapFault = callback.getSoapFault() ;
+            if (soapFault != null)
+            {
+                final QName subcode = soapFault.getSubcode() ;
+                if (ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME.equals(subcode))
+                {
+                    throw new UnknownTransactionException() ;
+                }
+            }
+        }
+        throw new SystemException() ;
+    }
+
+    public W3CEndpointReference getTerminatorEndpoint()
+    {
+        return _terminationCoordinator;
+    }
+    /*
+     * this never gets called
+     */
+    public void unknown ()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessActivityTerminatorStubWS_1 [com.arjuna.wst.stub.BusinessActivityTerminatorStubWS_1] - Unknown error
+     */
+    /*
+     * this never gets called
+     */
+    public void error ()
+        throws SystemException
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+        final SoapFault soapFault = new SoapFault(SoapFaultType.FAULT_SENDER, ArjunaTXConstants.UNKNOWNERROR_ERROR_CODE_QNAME,
+                WSTLogger.log_mesg.getString("com.arjuna.wst.stub.BusinessActivityTerminatorStubWS_1")) ;
+        try
+        {
+            // the terminaron coordinator endpoint does not expose a soapFault web method as this never gets called
+            // TerminationCoordinatorClientWS.getClient().sendSoapFault(_terminationCoordinator, addressingProperties, soapFault, new InstanceIdentifierWS(_id)) ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException() ;
+        }
+    }
+
+    private static class RequestCallback extends TerminationParticipantCallbackWS
+    {
+        /**
+         * The addressing context.
+         */
+        private AddressingProperties addressingProperties ;
+        /**
+         * The arjuna context.
+         */
+        private ArjunaContextWS arjunaContext ;
+        /**
+         * The SOAP fault.
+         */
+        private SoapFault soapFault ;
+        /**
+         * The completed notification flag.
+         */
+        private boolean completed ;
+        /**
+         * The cancelled notification flag.
+         */
+        private boolean cancelled ;
+        /**
+         * The closed notification flag.
+         */
+        private boolean closed ;
+        /**
+         * The faulted notification flag.
+         */
+        private boolean faulted ;
+
+        /**
+         * Get the addressing context.
+         * @return The addressing context.
+         */
+        AddressingProperties getAddressingProperties()
+        {
+            return addressingProperties ;
+        }
+
+        /**
+         * Get the arjuna context.
+         * @return The arjuna context.
+         */
+        ArjunaContextWS getArjunaContextWS()
+        {
+            return arjunaContext ;
+        }
+
+        /**
+         * Get the SOAP fault.
+         * @return The SOAP fault.
+         */
+        SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+
+        /**
+         * Did we receive a completed notification?
+         * @return True if completed, false otherwise.
+         */
+        boolean receivedCompleted()
+        {
+            return completed ;
+        }
+
+        /**
+         * Did we receive a cancelled notification?
+         * @return True if cancelled, false otherwise.
+         */
+        boolean receivedCancelled()
+        {
+            return cancelled ;
+        }
+
+        /**
+         * Did we receive a closed notification?
+         * @return True if closed, false otherwise.
+         */
+        boolean receivedClosed()
+        {
+            return closed ;
+        }
+
+        /**
+         * Did we receive a faulted notification?
+         * @return True if faulted, false otherwise.
+         */
+        boolean receivedFaulted()
+        {
+            return faulted ;
+        }
+
+        /**
+         * A completed response.
+         * @param completed The completed notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void completed(final NotificationType completed, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.completed = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A cancelled response.
+         * @param cancelled The cancelled notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void cancelled(final NotificationType cancelled, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.cancelled  = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A closed response.
+         * @param closed The closed notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void closed(final NotificationType closed, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.closed = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A faulted response.
+         * @param faulted The faulted notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void faulted(final NotificationType faulted, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            // TODO - convert wsdl to use NotificationType instead of ExceptionType
+            this.faulted = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            // TODO - pass soap fault to this callback
+            this.soapFault = soapFault ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithCoordinatorCompletionStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,282 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionStub.java,v 1.1.2.2 2004/06/18 15:06:09 nmcl Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import java.io.StringWriter;
+import java.io.StringReader;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.soap.SoapUtils;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.PersistableParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS;
+
+public class BusinessAgreementWithCoordinatorCompletionStubWS implements BusinessAgreementWithCoordinatorCompletionParticipant, PersistableParticipant
+{
+    private static final QName QNAME_BACCWS_PARTICIPANT = new QName("baccwsParticipant") ;
+    private CoordinatorCompletionCoordinatorEngineWS participant ;
+
+    public BusinessAgreementWithCoordinatorCompletionStubWS(final CoordinatorCompletionCoordinatorEngineWS participant)
+        throws Exception
+    {
+        this.participant = participant ;
+    }
+
+    public synchronized void close ()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Canceling-Active -> illegal state
+         * Canceling-Completing -> illegal state
+         * Completing -> illegal state
+         * Completed -> illegal state
+         * Closing -> no response
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.close() ;
+
+        if (state == StateWS.STATE_CLOSING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void cancel ()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> no response
+         * Canceling-Active -> no response
+         * Canceling-Completing -> no response
+         * Completing -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.cancel() ;
+
+        if ((state == StateWS.STATE_CANCELING) || (state == StateWS.STATE_CANCELING_ACTIVE) ||
+            (state == StateWS.STATE_CANCELING_COMPLETING))
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void compensate ()
+        throws FaultedException, WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Canceling-Active -> illegal state
+         * Canceling-Completing -> illegal state
+         * Completing -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> no response
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> fault
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.compensate() ;
+        if (state == StateWS.STATE_COMPENSATING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state == StateWS.STATE_FAILING_COMPENSATING)
+        {
+            throw new FaultedException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void complete ()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Canceling-Active -> illegal state
+         * Canceling-Completing -> canceling
+         * Completing -> no response
+         * Completed -> completed
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> fault
+         * Exiting -> exiting
+         * Ended -> illegal state
+         */
+        final StateWS state = participant.complete() ;
+        if (state == StateWS.STATE_COMPLETED)
+        {
+            return ;
+        }
+        else if ((state == StateWS.STATE_FAILING_COMPENSATING) || (state == StateWS.STATE_CANCELING_COMPLETING) ||
+            (state == StateWS.STATE_EXITING))
+        {
+            throw new SystemException() ;
+        }
+        throw new WrongStateException() ;
+    }
+
+    public String status ()
+        throws SystemException
+    {
+        final StateWS state = participant.getStatus() ;
+        return (state == null ? null : state.getValue().getLocalPart()) ;
+    }
+
+    public void unknown ()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    public synchronized void error ()
+        throws SystemException
+    {
+        participant.cancel() ;
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_2 [com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_2] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(participant.getId()) ;
+
+            // n.b. just use toString() for the endpoint -- it uses the writeTo() method which calls a suitable marshaller
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_BACCWS_PARTICIPANT) ;
+            String eprefText = participant.getParticipant().toString();
+            writer.writeCData(eprefText);
+            StreamHelper.writeEndElement(writer, null, null) ;
+            writer.close() ;
+
+            oos.packString(writer.toString()) ;
+
+            final StateWS state = participant.getStatus();
+            final QName stateName = state.getValue();
+            final String ns = stateName.getNamespaceURI();
+            final String localPart = stateName.getLocalPart();
+            final String prefix = stateName.getPrefix();
+            oos.packString(ns != null ? ns : "");
+            oos.packString(localPart != null ? localPart : "");
+            oos.packString(prefix != null ? prefix : "");
+
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_2", th) ;
+            return false ;
+        }
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_3 [com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_3] - Error restoring participant state
+     */
+    public boolean restoreState(final InputObjectState ios)
+    {
+        try
+        {
+            final String id = ios.unpackString();
+            final String eprValue = ios.unpackString();
+
+            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+            StreamHelper.checkNextStartTag(reader, QNAME_BACCWS_PARTICIPANT) ;
+            String eprefText = reader.getText();
+            StreamSource source = new StreamSource(new StringReader(eprefText));
+            final W3CEndpointReference endpointReference = new W3CEndpointReference(source);
+
+            String ns = ios.unpackString();
+            final String localPart = ios.unpackString();
+            String prefix = ios.unpackString();
+            if ("".equals(ns)) {
+                ns = null;
+            }
+            if ("".equals(prefix)) {
+                prefix = null;
+            }
+
+            QName statename = new QName(ns, localPart, prefix);
+            StateWS state = StateWS.toStateWS(statename);
+
+            participant = new CoordinatorCompletionCoordinatorEngineWS(id, endpointReference, state);
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS_3", th) ;
+            return false ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/BusinessAgreementWithParticipantCompletionStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,243 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (c) 2003, Arjuna Technologies Limited.
+ *
+ * $Id: BusinessAgreementWithParticipantCompletionStub.java,v 1.1.2.2 2004/06/18 15:06:09 nmcl Exp $
+ */
+
+package com.arjuna.wst.stub;
+
+import java.io.StringWriter;
+import java.io.StringReader;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.transform.stream.StreamSource;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.webservices.soap.SoapUtils;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.wsba.StateWS;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+import com.arjuna.wst.FaultedException;
+import com.arjuna.wst.PersistableParticipant;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS;
+
+public class BusinessAgreementWithParticipantCompletionStubWS implements BusinessAgreementWithParticipantCompletionParticipant, PersistableParticipant
+{
+    private static final QName QNAME_BAPCWS_PARTICIPANT = new QName("bapcwsParticipant") ;
+
+    private ParticipantCompletionCoordinatorEngineWS participant ;
+
+    public BusinessAgreementWithParticipantCompletionStubWS(final ParticipantCompletionCoordinatorEngineWS participant)
+        throws Exception
+    {
+        this.participant = participant ;
+    }
+
+    public synchronized void close ()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> no response
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.close() ;
+
+        if (state == StateWS.STATE_CLOSING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void cancel ()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> no response
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> illegal state
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> illegal state
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.cancel() ;
+
+        if (state == StateWS.STATE_CANCELING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public synchronized void compensate ()
+        throws FaultedException, WrongStateException, SystemException
+    {
+        /*
+         * Active -> illegal state
+         * Canceling -> illegal state
+         * Completed -> illegal state
+         * Closing -> illegal state
+         * Compensating -> no answer
+         * Faulting -> illegal state
+         * Faulting-Active -> illegal state
+         * Faulting-Compensating -> fault
+         * Exiting -> illegal state
+         * Ended -> ended
+         */
+        final StateWS state = participant.compensate() ;
+        if (state == StateWS.STATE_COMPENSATING)
+        {
+            throw new SystemException() ;
+        }
+        else if (state == StateWS.STATE_FAILING_COMPENSATING)
+        {
+            throw new FaultedException() ;
+        }
+        else if (state != StateWS.STATE_ENDED)
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public String status ()
+        throws SystemException
+    {
+        final StateWS state = participant.getStatus() ;
+        return (state == null ? null : state.getValue().getLocalPart()) ;
+    }
+
+    public void unknown ()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    public synchronized void error ()
+        throws SystemException
+    {
+        participant.cancel() ;
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_2 [com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_2] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(participant.getId()) ;
+
+            // n.b. just use toString() for the endpoint -- it uses the writeTo() method which calls a suitable marshaller
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_BAPCWS_PARTICIPANT) ;
+            String eprefText = participant.getParticipant().toString();
+            writer.writeCData(eprefText);
+            StreamHelper.writeEndElement(writer, null, null) ;
+            writer.close() ;
+
+            oos.packString(writer.toString()) ;
+
+            final StateWS state = participant.getStatus();
+            final QName stateName = state.getValue();
+            final String ns = stateName.getNamespaceURI();
+            final String localPart = stateName.getLocalPart();
+            final String prefix = stateName.getPrefix();
+            oos.packString(ns != null ? ns : "");
+            oos.packString(localPart != null ? localPart : "");
+            oos.packString(prefix != null ? prefix : "");
+
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_2", th) ;
+            return false ;
+        }
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_3 [com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_3] - Error restoring participant state
+     */
+    public boolean restoreState(final InputObjectState ios)
+    {
+        try
+        {
+            final String id = ios.unpackString() ;
+            final String eprValue = ios.unpackString() ;
+
+            // this should successfully reverse the save process
+            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+            StreamHelper.checkNextStartTag(reader, QNAME_BAPCWS_PARTICIPANT) ;
+            String eprefText = reader.getText();
+            StreamSource source = new StreamSource(new StringReader(eprefText));
+            final W3CEndpointReference endpointReference = new W3CEndpointReference(source);
+
+            String ns = ios.unpackString();
+            final String localPart = ios.unpackString();
+            String prefix = ios.unpackString();
+            if ("".equals(ns)) {
+                ns = null;
+            }
+            if ("".equals(prefix)) {
+                prefix = null;
+            }
+
+            QName statename = new QName(ns, localPart, prefix);
+            StateWS state = StateWS.toStateWS(statename);
+
+            participant = new ParticipantCompletionCoordinatorEngineWS(id, endpointReference, state);
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS_3", th) ;
+            return false ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/CompletionStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,225 @@
+package com.arjuna.wst.stub;
+
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorProcessorWS;
+import com.arjuna.webservices.wsat.processors.CompletionInitiatorCallbackWS;
+import com.arjuna.webservices.wsat.client.CompletionCoordinatorClientWS;
+import com.arjuna.webservices.wsarj.ArjunaContextWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsaddrws.AddressingHelper;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wsc.messaging.MessageId;
+
+import javax.xml.ws.addressing.AddressingProperties;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.oasis_open.docs.ws_tx.wsat._2006._06.Notification;
+
+public class CompletionStubWS implements
+		com.arjuna.wst.CompletionCoordinatorParticipant
+{
+    private W3CEndpointReference _completionCoordinator = null;
+    private String _id;
+
+	public CompletionStubWS(final String id, final W3CEndpointReference completionCoordinator)
+			throws Exception
+	{
+		_completionCoordinator = completionCoordinator;
+		_id = id;
+	}
+
+	public void commit () throws TransactionRolledBackException,
+            UnknownTransactionException, SystemException
+    {
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+
+        final CompletionStubWS.RequestCallback callback = new CompletionStubWS.RequestCallback() ;
+        final CompletionInitiatorProcessorWS completionInitiator = CompletionInitiatorProcessorWS.getProcessor() ;
+        completionInitiator.registerCallback(_id, callback) ;
+        try
+        {
+            CompletionCoordinatorClientWS.getClient().sendCommit(_completionCoordinator, addressingProperties, new InstanceIdentifierWS(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            th.printStackTrace() ;
+            throw new SystemException() ;
+        }
+        finally
+        {
+            completionInitiator.removeCallback(_id) ;
+        }
+
+        if (callback.hasTriggered())
+        {
+            if (callback.receivedCommitted())
+            {
+                return ;
+            }
+            else if (callback.receivedAborted())
+            {
+                throw new TransactionRolledBackException() ;
+            }
+            final SoapFault soapFault = callback.getSoapFault() ;
+            if ((soapFault != null) && ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME.equals(soapFault.getSubcode()))
+            {
+                throw new UnknownTransactionException();
+            }
+        }
+
+        throw new SystemException() ;
+	}
+
+	public void rollback () throws UnknownTransactionException, SystemException
+	{
+        final AddressingProperties addressingProperties = AddressingHelper.createNotificationContext(MessageId.getMessageId()) ;
+
+        final CompletionStubWS.RequestCallback callback = new CompletionStubWS.RequestCallback() ;
+        final CompletionInitiatorProcessorWS completionInitiator = CompletionInitiatorProcessorWS.getProcessor() ;
+        completionInitiator.registerCallback(_id, callback) ;
+        try
+        {
+            CompletionCoordinatorClientWS.getClient().sendRollback(_completionCoordinator, addressingProperties, new InstanceIdentifierWS(_id)) ;
+            callback.waitUntilTriggered() ;
+        }
+        catch (final Throwable th)
+        {
+            th.printStackTrace() ;
+            throw new SystemException() ;
+        }
+        finally
+        {
+            completionInitiator.removeCallback(_id) ;
+        }
+
+        if (callback.hasTriggered())
+        {
+            if (callback.receivedAborted())
+            {
+                return ;
+            }
+            final SoapFault soapFault = callback.getSoapFault() ;
+            if ((soapFault != null) && ArjunaTXConstants.UNKNOWNTRANSACTION_ERROR_CODE_QNAME.equals(soapFault.getSubcode()))
+            {
+                throw new UnknownTransactionException();
+            }
+        }
+
+        throw new SystemException() ;
+	}
+
+    private static class RequestCallback extends CompletionInitiatorCallbackWS
+    {
+        /**
+         * The addressing context.
+         */
+        private AddressingProperties addressingProperties ;
+        /**
+         * The arjuna context.
+         */
+        private ArjunaContextWS arjunaContext ;
+        /**
+         * The SOAP fault.
+         */
+        private SoapFault soapFault ;
+        /**
+         * The aborted notification flag.
+         */
+        private boolean aborted ;
+        /**
+         * The committed notification flag.
+         */
+        private boolean committed ;
+
+        /**
+         * Get the addressing context.
+         * @return The addressing context.
+         */
+        AddressingProperties getAddressingProperties()
+        {
+            return addressingProperties ;
+        }
+
+        /**
+         * Get the arjuna context.
+         * @return The arjuna context.
+         */
+        ArjunaContextWS getArjunaContext()
+        {
+            return arjunaContext ;
+        }
+
+        /**
+         * Get the SOAP fault.
+         * @return The SOAP fault.
+         */
+        SoapFault getSoapFault()
+        {
+            return soapFault ;
+        }
+
+        /**
+         * Did we receive a aborted notification?
+         * @return True if aborted, false otherwise.
+         */
+        boolean receivedAborted()
+        {
+            return aborted ;
+        }
+
+        /**
+         * Did we receive a committed notification?
+         * @return True if committed, false otherwise.
+         */
+        boolean receivedCommitted()
+        {
+            return committed ;
+        }
+
+        /**
+         * A aborted response.
+         * @param aborted The aborted notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void aborted(final Notification aborted, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.aborted = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * An committed response.
+         * @param committed The committed notification.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void committed(final Notification committed, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.committed  = true ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+
+        /**
+         * A SOAP fault response.
+         * @param soapFault The SOAP fault.
+         * @param addressingProperties The addressing context.
+         * @param arjunaContext The arjuna context.
+         */
+        public void soapFault(final SoapFault soapFault, final AddressingProperties addressingProperties,
+            final ArjunaContextWS arjunaContext)
+        {
+            this.soapFault = soapFault ;
+            this.addressingProperties = addressingProperties ;
+            this.arjunaContext = arjunaContext ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Durable2PCStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,19 @@
+package com.arjuna.wst.stub;
+
+import com.arjuna.wst.Durable2PCParticipant;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+public class Durable2PCStubWS extends ParticipantStubWS implements Durable2PCParticipant
+{
+    // default ctor for crash recovery
+    public Durable2PCStubWS() throws Exception {
+        super(null, true, null);
+    }
+
+    public Durable2PCStubWS(final String id, final W3CEndpointReference twoPCParticipant)
+        throws Exception
+    {
+        super(id, true, twoPCParticipant) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/ParticipantStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,203 @@
+package com.arjuna.wst.stub;
+
+import com.arjuna.wst.*;
+import com.arjuna.wst.messaging.engines.CoordinatorEngineWS;
+import com.arjuna.webservices.wsat.StateWS;
+import com.arjuna.webservices.soap.SoapUtils;
+import com.arjuna.webservices.util.StreamHelper;
+import com.arjuna.webservices.logging.WSTLogger;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.ats.arjuna.state.InputObjectState;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.transform.stream.StreamSource;
+import java.io.StringWriter;
+import java.io.StringReader;
+
+public class ParticipantStubWS implements Participant, PersistableParticipant
+{
+    private static final QName QNAME_TWO_PC_PARTICIPANT = new QName("twoPCParticipant") ;
+    private CoordinatorEngineWS coordinator ;
+
+    public ParticipantStubWS(final String id, final boolean durable, final W3CEndpointReference twoPCParticipant)
+        throws Exception
+    {
+        coordinator = new CoordinatorEngineWS(id, durable, twoPCParticipant) ;
+    }
+
+    public Vote prepare()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * null - aborted or read only
+         * Active - illegal state
+         * Preparing - no answer
+         * Prepared - illegal state
+         * PreparedSuccess - prepared
+         * Committing - illegal state
+         * Aborting - aborting
+         */
+        final StateWS state = coordinator.prepare() ;
+        if (state == StateWS.STATE_PREPARED_SUCCESS)
+        {
+            return new Prepared() ;
+        }
+        else if (state == StateWS.STATE_ABORTING)
+        {
+            return new Aborted() ;
+        }
+        else if (state == null)
+        {
+            if (coordinator.isReadOnly())
+            {
+                return new ReadOnly() ;
+            }
+            else
+            {
+                return new Aborted() ;
+            }
+        }
+        else if (state == StateWS.STATE_PREPARING)
+        {
+            throw new SystemException() ;
+        }
+        else
+        {
+            throw new WrongStateException() ;
+        }
+    }
+
+    public void commit()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * null - committed
+         * Active - illegal state
+         * Preparing - illegal state
+         * Prepared - illegal state
+         * PreparedSuccess - illegal state
+         * Committing - no response
+         * Aborting - illegal state
+         */
+        final StateWS state = coordinator.commit() ;
+        if (state != null)
+        {
+            if (state == StateWS.STATE_COMMITTING)
+            {
+                // typically means no response from the remote end.
+                // throw a comm exception to distinguish this case from the
+                // one where the remote end itself threw a SystemException.
+                throw new SystemCommunicationException();
+            }
+            else
+            {
+                throw new WrongStateException() ;
+            }
+        }
+    }
+
+    public void rollback()
+        throws WrongStateException, SystemException
+    {
+        /*
+         * null - aborted
+         * Active - illegal state
+         * Preparing - illegal state
+         * Prepared - illegal state
+         * PreparedSuccess - illegal state
+         * Committing - illegal state
+         * Aborting - no response
+         */
+        final StateWS state = coordinator.rollback() ;
+        if (state != null)
+        {
+            if (state == StateWS.STATE_ABORTING)
+            {
+                throw new SystemException() ;
+            }
+            else
+            {
+                throw new WrongStateException() ;
+            }
+        }
+    }
+
+    public void unknown()
+        throws SystemException
+    {
+        error() ;
+    }
+
+    public void error()
+        throws SystemException
+    {
+        try
+        {
+            rollback() ;
+        }
+        catch (final WrongStateException wse) {} // ignore
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.ParticipantStubWS_1 [com.arjuna.wst.stub.ParticipantStubWS_1] - Error persisting participant state
+     */
+    public boolean saveState(final OutputObjectState oos)
+    {
+        try
+        {
+            oos.packString(coordinator.getId()) ;
+            oos.packBoolean(coordinator.isDurable()) ;
+
+            // n.b. just use toString() for the endpoint -- it uses the writeTo() method which calls a suitable marshaller
+            final StringWriter sw = new StringWriter() ;
+            final XMLStreamWriter writer = SoapUtils.getXMLStreamWriter(sw) ;
+            StreamHelper.writeStartElement(writer, QNAME_TWO_PC_PARTICIPANT) ;
+            String eprefText = coordinator.getParticipant().toString();
+            writer.writeCData(eprefText);
+            StreamHelper.writeEndElement(writer, null, null) ;
+            writer.close() ;
+            sw.close();
+
+            String tmp = writer.toString();
+            String swString = sw.toString();
+            oos.packString(swString) ;
+
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.ParticipantStubWS_1", th) ;
+            return false ;
+        }
+    }
+
+    /**
+     * @message com.arjuna.wst.stub.ParticipantStubWS_2 [com.arjuna.wst.stub.ParticipantStubWS_2] - Error restoring participant state
+     */
+    public boolean restoreState(final InputObjectState ios)
+    {
+        try
+        {
+            final String id = ios.unpackString() ;
+            final boolean durable = ios.unpackBoolean() ;
+            final String eprValue = ios.unpackString() ;
+
+            // this should successfully reverse the save process
+            final XMLStreamReader reader = SoapUtils.getXMLStreamReader(new StringReader(eprValue)) ;
+            StreamHelper.checkNextStartTag(reader, QNAME_TWO_PC_PARTICIPANT) ;
+            String eprefText = reader.getText();
+            StreamSource source = new StreamSource(new StringReader(eprefText));
+            final W3CEndpointReference endpointReference = new W3CEndpointReference(source);
+            coordinator = new CoordinatorEngineWS(id, durable, endpointReference, StateWS.STATE_PREPARED_SUCCESS) ;
+            return true ;
+        }
+        catch (final Throwable th)
+        {
+            WSTLogger.arjLoggerI18N.error("com.arjuna.wst.stub.ParticipantStubWS_2", th) ;
+            return false ;
+        }
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStubWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStubWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/com/arjuna/wst/stub/Volatile2PCStubWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,14 @@
+package com.arjuna.wst.stub;
+
+import com.arjuna.wst.Volatile2PCParticipant;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+public class Volatile2PCStubWS extends ParticipantStubWS implements Volatile2PCParticipant
+{
+    public Volatile2PCStubWS(final String id, final W3CEndpointReference twoPCParticipant)
+        throws Exception
+    {
+        super(id, false, twoPCParticipant) ;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ATAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "ATAssertion")
+public class ATAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl")
+public class CompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CompletionCoordinatorService() {
+        super(COMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "CompletionCoordinatorPortType")
+    public CompletionCoordinatorPortType getCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionCoordinatorPortType"), CompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,42 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CompletionInitiatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CompletionInitiatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CompletionInitiatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CompletionInitiatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl")
+public class CompletionInitiatorService
+    extends Service
+{
+
+    private final static URL COMPLETIONINITIATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CompletionInitiatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-completion-initiator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COMPLETIONINITIATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CompletionInitiatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CompletionInitiatorService() {
+        super(COMPLETIONINITIATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionInitiatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CompletionInitiatorPortType
+     */
+    @WebEndpoint(name = "CompletionInitiatorPortType")
+    public CompletionInitiatorPortType getCompletionInitiatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CompletionInitiatorPortType"), CompletionInitiatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,62 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "CoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface CoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PreparedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepared")
+    @Oneway
+    public void preparedOperation(
+        @WebParam(name = "Prepared", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "AbortedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Aborted")
+    @Oneway
+    public void abortedOperation(
+        @WebParam(name = "Aborted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ReadOnlyOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/ReadOnly")
+    @Oneway
+    public void readOnlyOperation(
+        @WebParam(name = "ReadOnly", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommittedOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Committed")
+    @Oneway
+    public void committedOperation(
+        @WebParam(name = "Committed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/CoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "CoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl")
+public class CoordinatorService
+    extends Service
+{
+
+    private final static URL COORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.CoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        COORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public CoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public CoordinatorService() {
+        super(COORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns CoordinatorPortType
+     */
+    @WebEndpoint(name = "CoordinatoPortType")
+    public CoordinatorPortType getCoordinatoPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "CoordinatoPortType"), CoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/Notification.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for Notification complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="Notification">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "Notification", propOrder = {
+    "any"
+})
+public class Notification {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,121 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsat._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Aborted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Aborted");
+    private final static QName _Commit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Commit");
+    private final static QName _ReadOnly_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ReadOnly");
+    private final static QName _Committed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Committed");
+    private final static QName _Rollback_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Rollback");
+    private final static QName _Prepare_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepare");
+    private final static QName _Prepared_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "Prepared");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsat._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link ATAssertion }
+     * 
+     */
+    public ATAssertion createATAssertion() {
+        return new ATAssertion();
+    }
+
+    /**
+     * Create an instance of {@link Notification }
+     * 
+     */
+    public Notification createNotification() {
+        return new Notification();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Aborted")
+    public JAXBElement<Notification> createAborted(Notification value) {
+        return new JAXBElement<Notification>(_Aborted_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Commit")
+    public JAXBElement<Notification> createCommit(Notification value) {
+        return new JAXBElement<Notification>(_Commit_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "ReadOnly")
+    public JAXBElement<Notification> createReadOnly(Notification value) {
+        return new JAXBElement<Notification>(_ReadOnly_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Committed")
+    public JAXBElement<Notification> createCommitted(Notification value) {
+        return new JAXBElement<Notification>(_Committed_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Rollback")
+    public JAXBElement<Notification> createRollback(Notification value) {
+        return new JAXBElement<Notification>(_Rollback_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepare")
+    public JAXBElement<Notification> createPrepare(Notification value) {
+        return new JAXBElement<Notification>(_Prepare_QNAME, Notification.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Notification }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", name = "Prepared")
+    public JAXBElement<Notification> createPrepared(Notification value) {
+        return new JAXBElement<Notification>(_Prepared_QNAME, Notification.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "ParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface ParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "PrepareOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Prepare")
+    @Oneway
+    public void prepareOperation(
+        @WebParam(name = "Prepare", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CommitOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Commit")
+    @Oneway
+    public void commitOperation(
+        @WebParam(name = "Commit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "RollbackOperation", action = "http://docs.oasis-open.org/ws-tx/wsat/2006/06/Rollback")
+    @Oneway
+    public void rollbackOperation(
+        @WebParam(name = "Rollback", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", partName = "parameters")
+        Notification parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/ParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsat._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "ParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl")
+public class ParticipantService
+    extends Service
+{
+
+    private final static URL PARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsat._2006._06.ParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsat-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        PARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public ParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public ParticipantService() {
+        super(PARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns ParticipantPortType
+     */
+    @WebEndpoint(name = "ParticipantPortType")
+    public ParticipantPortType getParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsat/2006/06", "ParticipantPortType"), ParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsat/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsat/2006/06")
+package org.oasis_open.docs.ws_tx.wsat._2006._06;

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAAtomicOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAAtomicOutcomeAssertion")
+public class BAAtomicOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BAMixedOutcomeAssertion.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,97 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "any"
+})
+ at XmlRootElement(name = "BAMixedOutcomeAssertion")
+public class BAMixedOutcomeAssertion {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl")
+public class BusinessAgreementWithCoordinatorCompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-coordinator-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorService() {
+        super(BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType")
+    public BusinessAgreementWithCoordinatorCompletionCoordinatorPortType getBusinessAgreementWithCoordinatorCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionCoordinatorPortType"), BusinessAgreementWithCoordinatorCompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithCoordinatorCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompleteOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/mplete")
+    @Oneway
+    public void completeOperation(
+        @WebParam(name = "Complete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithCoordinatorCompletionParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithCoordinatorCompletionParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl")
+public class BusinessAgreementWithCoordinatorCompletionParticipantService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithCoordinatorCompletionParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-coordinator-completion-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithCoordinatorCompletionParticipantService() {
+        super(BUSINESSAGREEMENTWITHCOORDINATORCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithCoordinatorCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithCoordinatorCompletionParticipantPortType")
+    public BusinessAgreementWithCoordinatorCompletionParticipantPortType getBusinessAgreementWithCoordinatorCompletionParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithCoordinatorCompletionParticipantPortType"), BusinessAgreementWithCoordinatorCompletionParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,112 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionCoordinatorPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompletedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Completed")
+    @Oneway
+    public void completedOperation(
+        @WebParam(name = "Completed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Fail")
+    @Oneway
+    public void failOperation(
+        @WebParam(name = "Fail", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        ExceptionType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensatedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensated")
+    @Oneway
+    public void compensatedOperation(
+        @WebParam(name = "Compensated", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ClosedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Closed")
+    @Oneway
+    public void closedOperation(
+        @WebParam(name = "Closed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CanceledOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Canceled")
+    @Oneway
+    public void canceledOperation(
+        @WebParam(name = "Canceled", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exit")
+    @Oneway
+    public void exitOperation(
+        @WebParam(name = "Exit", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CannotComplete", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/CannotComplete")
+    @Oneway
+    public void cannotComplete(
+        @WebParam(name = "CannotComplete", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionCoordinatorService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithParticipantCompletionCoordinatorService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl")
+public class BusinessAgreementWithParticipantCompletionCoordinatorService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionCoordinatorService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-participant-completion-coordinator-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithParticipantCompletionCoordinatorService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithParticipantCompletionCoordinatorService() {
+        super(BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONCOORDINATORSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionCoordinatorService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionCoordinatorPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionCoordinatorPortType")
+    public BusinessAgreementWithParticipantCompletionCoordinatorPortType getBusinessAgreementWithParticipantCompletionCoordinatorPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionCoordinatorPortType"), BusinessAgreementWithParticipantCompletionCoordinatorPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantPortType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,102 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebService(name = "BusinessAgreementWithParticipantCompletionParticipantPortType", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06")
+ at SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface BusinessAgreementWithParticipantCompletionParticipantPortType {
+
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CloseOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Close")
+    @Oneway
+    public void closeOperation(
+        @WebParam(name = "Close", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CancelOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Cancel")
+    @Oneway
+    public void cancelOperation(
+        @WebParam(name = "Cancel", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "CompensateOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Compensate")
+    @Oneway
+    public void compensateOperation(
+        @WebParam(name = "Compensate", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "FailedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Failed")
+    @Oneway
+    public void failedOperation(
+        @WebParam(name = "Failed", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "ExitedOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Exited")
+    @Oneway
+    public void exitedOperation(
+        @WebParam(name = "Exited", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "NotCompleted", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/NotCompleted")
+    @Oneway
+    public void notCompleted(
+        @WebParam(name = "NotCompleted", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "GetStatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/GetStatus")
+    @Oneway
+    public void getStatusOperation(
+        @WebParam(name = "GetStatus", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        NotificationType parameters);
+
+    /**
+     * 
+     * @param parameters
+     */
+    @WebMethod(operationName = "StatusOperation", action = "http://docs.oasis-open.org/ws-tx/wsba/2006/06/Status")
+    @Oneway
+    public void statusOperation(
+        @WebParam(name = "Status", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", partName = "parameters")
+        StatusType parameters);
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/BusinessAgreementWithParticipantCompletionParticipantService.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.2-hudson-182-RC1
+ * Generated source version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "BusinessAgreementWithParticipantCompletionParticipantService", targetNamespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", wsdlLocation = "/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl")
+public class BusinessAgreementWithParticipantCompletionParticipantService
+    extends Service
+{
+
+    private final static URL BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION;
+    private final static Logger logger = Logger.getLogger(org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantService.class.getName());
+
+    static {
+        URL url = null;
+        try {
+            URL baseUrl;
+            baseUrl = org.oasis_open.docs.ws_tx.wsba._2006._06.BusinessAgreementWithParticipantCompletionParticipantService.class.getResource(".");
+            url = new URL(baseUrl, "/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl");
+        } catch (MalformedURLException e) {
+            logger.warning("Failed to create URL for the wsdl Location: '/home/adinn/tmp/wsdl/wsba-participant-completion-participant-binding.wsdl', retrying as a local file");
+            logger.warning(e.getMessage());
+        }
+        BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION = url;
+    }
+
+    public BusinessAgreementWithParticipantCompletionParticipantService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public BusinessAgreementWithParticipantCompletionParticipantService() {
+        super(BUSINESSAGREEMENTWITHPARTICIPANTCOMPLETIONPARTICIPANTSERVICE_WSDL_LOCATION, new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionParticipantService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns BusinessAgreementWithParticipantCompletionParticipantPortType
+     */
+    @WebEndpoint(name = "BusinessAgreementWithParticipantCompletionParticipantPortType")
+    public BusinessAgreementWithParticipantCompletionParticipantPortType getBusinessAgreementWithParticipantCompletionParticipantPortType() {
+        return super.getPort(new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "BusinessAgreementWithParticipantCompletionParticipantPortType"), BusinessAgreementWithParticipantCompletionParticipantPortType.class);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ExceptionType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExceptionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ExceptionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ExceptionIdentifier" type="{http://www.w3.org/2001/XMLSchema}QName"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ExceptionType", propOrder = {
+    "exceptionIdentifier",
+    "any"
+})
+public class ExceptionType {
+
+    @XmlElement(name = "ExceptionIdentifier", required = true)
+    protected QName exceptionIdentifier;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the exceptionIdentifier property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getExceptionIdentifier() {
+        return exceptionIdentifier;
+    }
+
+    /**
+     * Sets the value of the exceptionIdentifier property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setExceptionIdentifier(QName value) {
+        this.exceptionIdentifier = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/NotificationType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for NotificationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="NotificationType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "NotificationType", propOrder = {
+    "any"
+})
+public class NotificationType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/ObjectFactory.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,235 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ws_tx.wsba._2006._06 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Canceled_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Canceled");
+    private final static QName _Cancel_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Cancel");
+    private final static QName _Status_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Status");
+    private final static QName _Close_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Close");
+    private final static QName _Exited_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exited");
+    private final static QName _Complete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Complete");
+    private final static QName _Failed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Failed");
+    private final static QName _Compensate_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensate");
+    private final static QName _CannotComplete_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "CannotComplete");
+    private final static QName _Completed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Completed");
+    private final static QName _Closed_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Closed");
+    private final static QName _Compensated_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Compensated");
+    private final static QName _Exit_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Exit");
+    private final static QName _Fail_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "Fail");
+    private final static QName _GetStatus_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "GetStatus");
+    private final static QName _NotCompleted_QNAME = new QName("http://docs.oasis-open.org/ws-tx/wsba/2006/06", "NotCompleted");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ws_tx.wsba._2006._06
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link NotificationType }
+     * 
+     */
+    public NotificationType createNotificationType() {
+        return new NotificationType();
+    }
+
+    /**
+     * Create an instance of {@link BAAtomicOutcomeAssertion }
+     * 
+     */
+    public BAAtomicOutcomeAssertion createBAAtomicOutcomeAssertion() {
+        return new BAAtomicOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link ExceptionType }
+     * 
+     */
+    public ExceptionType createExceptionType() {
+        return new ExceptionType();
+    }
+
+    /**
+     * Create an instance of {@link StatusType }
+     * 
+     */
+    public StatusType createStatusType() {
+        return new StatusType();
+    }
+
+    /**
+     * Create an instance of {@link BAMixedOutcomeAssertion }
+     * 
+     */
+    public BAMixedOutcomeAssertion createBAMixedOutcomeAssertion() {
+        return new BAMixedOutcomeAssertion();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Canceled")
+    public JAXBElement<NotificationType> createCanceled(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Canceled_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Cancel")
+    public JAXBElement<NotificationType> createCancel(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Cancel_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link StatusType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Status")
+    public JAXBElement<StatusType> createStatus(StatusType value) {
+        return new JAXBElement<StatusType>(_Status_QNAME, StatusType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Close")
+    public JAXBElement<NotificationType> createClose(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Close_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exited")
+    public JAXBElement<NotificationType> createExited(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exited_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Complete")
+    public JAXBElement<NotificationType> createComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Complete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Failed")
+    public JAXBElement<NotificationType> createFailed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Failed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensate")
+    public JAXBElement<NotificationType> createCompensate(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensate_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "CannotComplete")
+    public JAXBElement<NotificationType> createCannotComplete(NotificationType value) {
+        return new JAXBElement<NotificationType>(_CannotComplete_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Completed")
+    public JAXBElement<NotificationType> createCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Completed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Closed")
+    public JAXBElement<NotificationType> createClosed(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Closed_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Compensated")
+    public JAXBElement<NotificationType> createCompensated(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Compensated_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Exit")
+    public JAXBElement<NotificationType> createExit(NotificationType value) {
+        return new JAXBElement<NotificationType>(_Exit_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ExceptionType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "Fail")
+    public JAXBElement<ExceptionType> createFail(ExceptionType value) {
+        return new JAXBElement<ExceptionType>(_Fail_QNAME, ExceptionType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "GetStatus")
+    public JAXBElement<NotificationType> createGetStatus(NotificationType value) {
+        return new JAXBElement<NotificationType>(_GetStatus_QNAME, NotificationType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link NotificationType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", name = "NotCompleted")
+    public JAXBElement<NotificationType> createNotCompleted(NotificationType value) {
+        return new JAXBElement<NotificationType>(_NotCompleted_QNAME, NotificationType.class, null, value);
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/StatusType.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,124 @@
+
+package org.oasis_open.docs.ws_tx.wsba._2006._06;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for StatusType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="StatusType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="State" type="{http://docs.oasis-open.org/ws-tx/wsba/2006/06}StateType"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "StatusType", propOrder = {
+    "state",
+    "any"
+})
+public class StatusType {
+
+    @XmlElement(name = "State", required = true)
+    protected QName state;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the state property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link QName }
+     *     
+     */
+    public QName getState() {
+        return state;
+    }
+
+    /**
+     * Sets the value of the state property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link QName }
+     *     
+     */
+    public void setState(QName value) {
+        this.state = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WS-T/dev/src/org/oasis_open/docs/ws_tx/wsba/_2006/_06/package-info.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,2 @@
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ws-tx/wsba/2006/06", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.oasis_open.docs.ws_tx.wsba._2006._06;

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -50,11 +50,15 @@
     <property name="jta.lib.jars" value="jbossjta.jar"/>
     <property name="jta.ext.jars" value="jbossts-common.jar"/>
     <property name="jta.ext.compile.jars" value="commons-logging.jar jta-1_1-classes.zip"/>
-    <property name="xts.ext.compile.jars" value="servlet.jar stax-api-1.0.jar"/>
+    <property name="xts.ext.compile.jars" value="servlet.jar stax-api-1.0.jar wsbrew.jar"/>
 
     <property name="wsas.libs" value="wsas.jar"/>
     <property name="wsc.libs" value="ws-c.jar"/>
 
+    <!-- we need gf jars from the gf lib dir -->
+    <property name="gf.dir" value="${env.GF_HOME}/lib"/>
+    <property name="gf.lib.jars" value="javaee.jar"/>
+
     <property name="com.arjuna.mwlabs.wscf.resourcebundle"
 	      value="wscf_msg_en_US.properties"/>
 
@@ -79,6 +83,8 @@
         <fileset dir="${com.arjuna.xts.ext}" includes="${xts.ext.compile.jars}"/>
         <fileset dir="${com.arjuna.mwlabs.wsas.jar.dest}" includes="${wsas.libs}"/>
         <fileset dir="${com.arjuna.mwlabs.wsc.jar.dest}" includes="${wsc.libs}"/>
+	<!-- add extra gf jars to path -->
+        <fileset dir="${gf.dir}" includes="${gf.lib.jars}"/>
     </path>
 
 	<!-- Initialisation -->
@@ -123,6 +129,11 @@
             <attribute name="Class-Path" value="${com.arjuna.mwlabs.ts.modulename}.jar"/>
         </manifest>
       </war>
+          <war warfile="${com.arjuna.mwlabs.wscf.war.dest}/${com.arjuna.mwlabs.ts.modulename}11.war" webxml="xml/wscf11_web-app.xml">
+	    <manifest>
+	      <attribute name="Class-Path" value="${com.arjuna.mwlabs.ts.modulename}.jar"/>
+	    </manifest>
+	  </war>
 	</target>
 
 	<!-- Jar targets -->

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/ContextWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/ContextWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/context/ContextWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,17 @@
+package com.arjuna.mw.wsc.context;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Context.java,v 1.1.24.1 2005/11/22 10:34:14 kconner Exp $
+ * @since 1.0.
+ */
+
+public interface ContextWS
+{
+
+    public CoordinationContextType getCoordinationContext ();
+
+    public void setCoordinationContext (CoordinationContextType cc);
+}

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFInitialisation.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -63,9 +63,9 @@
                }
            }
         };
-        // this is the last WST callback to be initialised so close the list
+        // this is the last WSCF callback to be initialised so close the list
+
         Sequencer.close(Sequencer.WEBAPP_WSCF);
-
     }
 
     /**

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFWSInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFWSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wsc/deploy/WSCFWSInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wsc.deploy;
+
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mwlabs.wsc.ContextFactoryMapperWSImple;
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.wsc.ContextFactoryMapper;
+import com.arjuna.wsc.ContextFactoryMapperWS;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+/**
+ * Initialise WSCF.
+ * @author kevin
+ */
+public class WSCFWSInitialisation implements ServletContextListener
+{
+    /**
+     * The context has been initialized.
+     * @param servletContextEvent The servlet context event.
+     *
+     * @message com.arjuna.mw.wsc.deploy.WSCFWSI_1 [com.arjuna.mw.wsc.deploy.WSCFWSI_1] - WSCFWS Initialisation: init failed:
+     */
+    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    {
+        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.WEBAPP_WSCF11) {
+           public void run() {
+               try
+               {
+                   // no need for this as WSCF init wil already have initialised via wscf.xml
+
+                   // Configuration.initialise("/wscf.xml");
+
+                   final ContextFactoryMapperWS wscfwsImpl = ContextFactoryMapperWS.getFactory() ;
+
+                   wscfwsImpl.setSubordinateContextFactoryMapper(new ContextFactoryMapperWSImple());
+               }
+               catch (Exception exception)
+               {
+                   wscfLogger.arjLoggerI18N.error("com.arjuna.mw.wsc.deploy.WSCFWSI_1", exception);
+               }
+               catch (Error error)
+               {
+                   wscfLogger.arjLoggerI18N.error("com.arjuna.mw.wsc.deploy.WSCFWSI_1", error);
+               }
+           }
+        };
+        // this is the last WSCF callback to be initialised so close the list
+        Sequencer.close(Sequencer.WEBAPP_WSCF11);
+
+    }
+
+    /**
+     * The context is about to be destroyed.
+     * @param servletContextEvent The servlet context event.
+     */
+    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    {
+    }
+}
\ No newline at end of file

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Environment.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Environment.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/common/Environment.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -42,6 +42,7 @@
 {
 
     public static final String PROTOCOL_IMPLEMENTATION = "com.arjuna.mw.wscf.protocolImplementation";
+    public static final String PROTOCOLWS_IMPLEMENTATION = "com.arjuna.mw.wscfws.protocolImplementation";
     public static final String JTA_CONTEXT = "com.arjuna.mw.wscf.protocols.jta.context";
     public static final String TWO_PHASE_CONTEXT = "com.arjuna.mw.wscf.protocols.twophase.context";
     public static final String SAGAS_CONTEXT = "com.arjuna.mw.wscf.protocols.sagas.context";

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManagerWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManagerWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolManagerWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,447 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ProtocolManager.java,v 1.13 2005/05/19 12:13:28 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.protocols;
+
+import com.arjuna.mw.wscf.common.Environment;
+import com.arjuna.mw.wscf.exceptions.ProtocolAlreadyRegisteredException;
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+import com.arjuna.mw.wscf.exceptions.UnknownProtocolImplementationException;
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.utils.CoordinationXML;
+import com.arjuna.mwlabs.wscf.protocols.InitializerWS;
+import com.arjuna.mwlabs.wscf.protocols.ProtocolEntry;
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Properties;
+import java.util.Vector;
+
+/**
+ * The ProtocolManager is the way in which protocol implementations may be
+ * registered with the system.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolManager.java,v 1.13 2005/05/19 12:13:28 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class ProtocolManagerWS
+{
+
+	/**
+	 * Add a specific protocol implementation to the factory. More than one
+	 * implementation may provide the same protocol. They may differ by
+	 * coordinator-name only.
+	 *
+	 * @param     protocol The XML definition of the protocol.
+	 * @param     className The name of the class that implements the specified
+	 *            protocol.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.ProtocolAlreadyRegisteredException
+	 *                Thrown if the exact same protocol definition has already
+	 *                been registered.
+	 * @exception IllegalArgumentException
+	 *                Thrown if either of the parameters is invalid.
+	 */
+
+	public void addProtocol (org.w3c.dom.Document protocol, Object className)
+			throws ProtocolAlreadyRegisteredException,
+			IllegalArgumentException
+	{
+		if ((protocol == null) || (className == null))
+			throw new IllegalArgumentException();
+
+		if (present(protocol))
+			throw new ProtocolAlreadyRegisteredException();
+		else
+		{
+			ProtocolEntry e = new ProtocolEntry(protocol, className);
+			Vector impls = (Vector) _protocols.get(e.protocolType());
+
+			if (impls == null)
+			{
+				impls = new Vector();
+
+				_protocols.put(e.protocolType(), impls);
+			}
+
+			impls.add(e);
+		}
+	}
+
+	/**
+	 * Replace a specific protocol implementation in the factory.
+	 *
+	 * @param     protocol The XML definition of the protocol.
+	 * @param     className The name of the class that implements the specified
+	 *            protocol.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException
+	 *                Thrown if the protocol to be removed has not been
+	 *                registered.
+	 * @exception IllegalArgumentException
+	 *                Thrown if either of the parameters is invalid.
+	 */
+
+	public void replaceProtocol (org.w3c.dom.Document protocol, Object className)
+			throws ProtocolNotRegisteredException, IllegalArgumentException
+	{
+		synchronized (this)
+		{
+			CoordinationXML protocolDef = new CoordinationXML(protocol);
+			Vector impls = (Vector) _protocols.get(protocolDef.protocolType());
+			boolean found = false;
+
+			if (impls != null)
+			{
+				for (int i = 0; (i < impls.size()) && !found; i++)
+				{
+					ProtocolEntry entry = (ProtocolEntry) impls.elementAt(i);
+
+					// currently replaces only on type: should be exact match!
+
+					if (sameProtocolType(entry, protocolDef))
+					{
+						impls.remove(entry);
+
+						try
+						{
+							addProtocol(protocol, className);
+						}
+						catch (Exception ex)
+						{
+							throw new IllegalArgumentException(ex.toString());
+						}
+
+						found = true;
+					}
+				}
+			}
+
+			if (!found)
+				throw new ProtocolNotRegisteredException();
+		}
+	}
+
+	/**
+	 * @param     protocol The XML definition of the coordination protocol.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException
+	 *                Thrown if the requested coordination protocol has not been
+	 *                registered.
+	 * @exception IllegalArgumentException
+	 *                Thrown if the parameter is invalid.
+	 *
+	 * @return The class that implements the specified coordination protocol.
+	 *
+	 * @message com.arjuna.mw.wscf.protocols.ProtocolManagerWS_1
+	 *          [com.arjuna.mw.wscf.protocols.ProtocolManagerWS_1] - Could not
+	 *          find protocol:
+	 */
+
+	public Object getProtocolImplementation (org.w3c.dom.Document protocol)
+			throws ProtocolNotRegisteredException, IllegalArgumentException
+	{
+		/*
+		 * Only checks the coordination-type via the hashtable. Now we need to
+		 * check the coordination-name.
+		 */
+
+		CoordinationXML protocolDef = new CoordinationXML(protocol);
+		Vector impls = (Vector) _protocols.get(protocolDef.protocolType());
+
+		if (impls != null)
+		{
+			for (int i = 0; i < impls.size(); i++)
+			{
+				ProtocolEntry entry = (ProtocolEntry) impls.elementAt(i);
+
+				if (sameProtocolType(entry, protocolDef))
+				{
+					return entry.implementationClass();
+				}
+			}
+		}
+
+		throw new ProtocolNotRegisteredException(
+				wscfLogger.log_mesg.getString("com.arjuna.mw.wscf.protocols.ProtocolManagerWS_1")
+						+ protocolDef.protocolType());
+	}
+
+	/**
+	 * Remove the specified protocol definition from the factory.
+	 *
+	 * @param     protocol The XML definition of the coordination protocol.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException
+	 *                Thrown if the protocol to be removed has not been
+	 *                registered.
+	 * @exception IllegalArgumentException
+	 *                Thrown if the paramater is invalid (e.g., null).
+	 *
+	 * @return the protocol implementation removed.
+	 */
+
+	public Object removeProtocol (org.w3c.dom.Document protocol)
+			throws ProtocolNotRegisteredException, IllegalArgumentException
+	{
+		CoordinationXML protocolDef = new CoordinationXML(protocol);
+		Vector impls = (Vector) _protocols.get(protocolDef.protocolType());
+
+		if (impls != null)
+		{
+			for (int i = 0; i < impls.size(); i++)
+			{
+				ProtocolEntry entry = (ProtocolEntry) impls.elementAt(i);
+
+				if (sameProtocol(entry, protocolDef))
+				{
+					impls.remove(entry);
+
+					return entry.implementationClass();
+				}
+			}
+		}
+
+		throw new ProtocolNotRegisteredException();
+	}
+
+	/*
+	 * Do we need this?
+	 */
+
+	/**
+	 * Remove the specified coordination protocol implementation class from the
+	 * factory.
+	 *
+	 * @param     className The class to remove.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.UnknownProtocolImplementationException
+	 *                Thrown if the specified implementation class has not been
+	 *                registered.
+	 * @exception IllegalArgumentException
+	 *                Thrown if the parameter is invalid.
+	 *
+	 * @return the protocol implementation removed.
+	 */
+
+	public Object removeProtocolImplementation (Object className)
+			throws UnknownProtocolImplementationException,
+			IllegalArgumentException
+	{
+		throw new UnknownProtocolImplementationException();
+	}
+
+	/**
+	 * Is the document present exactly as it appears, i.e., even the name is the
+	 * same?
+	 *
+	 * @param     protocol The XML definition of the coordination protocol.
+	 *
+	 * @exception IllegalArgumentException
+	 *                Thrown if the parameter is invalid (e.g., null).
+	 *
+	 * @return <code>true</code> if there is an exact match for the specified
+	 *         protocol, <code>false</code> otherwise.
+	 */
+
+	public final boolean present (org.w3c.dom.Document protocol)
+			throws IllegalArgumentException
+	{
+		/*
+		 * Only checks the coordination-type via the hashtable. Now we need to
+		 * check the coordination-name.
+		 */
+
+		boolean found = false;
+
+		CoordinationXML protocolDef = new CoordinationXML(protocol);
+		Vector impls = (Vector) _protocols.get(protocolDef.protocolType());
+
+		if (impls != null)
+		{
+			for (int i = 0; (i < impls.size()) && !found; i++)
+			{
+				ProtocolEntry entry = (ProtocolEntry) impls.elementAt(i);
+
+				if (sameProtocolType(entry, protocolDef))
+					found = true;
+			}
+		}
+
+		return found;
+	}
+
+	/**
+	 * Is the document present but with a different name?
+	 *
+	 * @param     protocol The XML definition of the coordination protocol.
+	 *
+	 * @exception IllegalArgumentException
+	 *                Thrown if the parameter is invalid (e.g., null).
+	 *
+	 * @return <code>true</code> if there is at match for the specified
+	 *         protocol, <code>false</code> otherwise.
+	 */
+
+	public final boolean presentWithDifferentName (org.w3c.dom.Document protocol)
+			throws IllegalArgumentException
+	{
+		/*
+		 * Check the registered protocols and if the types are the same but
+		 * differ by name (essentially who implemented them) then they are not
+		 * identical.
+		 */
+
+		boolean found = false;
+		CoordinationXML protocolDef = new CoordinationXML(protocol);
+		Vector impls = (Vector) _protocols.get(protocolDef.protocolType());
+
+		if (impls != null)
+		{
+			if (protocolDef.protocolName() != null)
+			{
+				for (int i = 0; (i < impls.size()) && !found; i++)
+				{
+					ProtocolEntry entry = (ProtocolEntry) impls.elementAt(i);
+
+					if (sameProtocol(entry, protocolDef))
+						found = true;
+				}
+			}
+			else
+				found = true; // any will do
+		}
+
+		return found;
+	}
+
+	protected ProtocolManagerWS()
+	{
+		initialise();
+	}
+
+	private final boolean sameProtocolType (ProtocolEntry pe, CoordinationXML cx)
+	{
+		if (pe.protocolType() != null)
+		{
+			if (cx.protocolType() != null)
+			{
+				return cx.protocolType().equals(pe.protocolType());
+			}
+		}
+
+		return false;
+	}
+
+	private final boolean sameProtocol (ProtocolEntry pe, CoordinationXML cx)
+	{
+		if (sameProtocolType(pe, cx))
+		{
+			if (pe.protocolName() != null)
+			{
+				if (cx.protocolName() != null)
+					return cx.protocolName().equals(pe.protocolName());
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * @message com.arjuna.mw.wscf.protocols.ProtocolManagerWS_2
+	 *          [com.arjuna.mw.wscf.protocols.ProtocolManagerWS_2] - Failed to
+	 *          find document:
+	 */
+
+	private synchronized final void initialise ()
+	{
+		if (_initialised)
+			return;
+		else
+			_initialised = true;
+
+		// TODO sort out configuration!
+
+		try
+		{
+			InitializerWS init = new InitializerWS(this);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+
+		Properties props = System.getProperties();
+		Enumeration names = props.propertyNames();
+
+		while (names.hasMoreElements())
+		{
+			String name = (String) names.nextElement();
+
+			if (name.startsWith(Environment.PROTOCOLWS_IMPLEMENTATION))
+			{
+				String className = props.getProperty(name);
+
+				try
+				{
+					ProtocolLocator pl = new ProtocolLocator(className);
+					org.w3c.dom.Document doc = pl.getProtocol();
+
+					if (doc == null)
+					{
+						// TODO
+
+						throw new ExceptionInInitializerError(
+								wscfLogger.log_mesg.getString("com.arjuna.mw.wscf.protocols.ProtocolManagerWS_2")
+										+ className);
+					}
+					else
+					{
+						addProtocol(doc, className);
+					}
+				}
+				catch (Exception ex)
+				{
+					ex.printStackTrace();
+
+					throw new ExceptionInInitializerError(ex.toString());
+				}
+			}
+		}
+	}
+
+	private HashMap _protocols = new HashMap();
+	private boolean _initialised = false;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistryWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistryWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mw/wscf/protocols/ProtocolRegistryWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ProtocolRegistry.java,v 1.2 2003/03/04 12:55:56 nmcl Exp $
+ */
+
+package com.arjuna.mw.wscf.protocols;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ProtocolRegistry.java,v 1.2 2003/03/04 12:55:56 nmcl Exp $
+ * @since 1.0.
+ */
+
+// TODO we need a separate instance for WSTX
+
+public class ProtocolRegistryWS
+{
+
+    public static ProtocolManagerWS sharedManager ()
+    {
+	return _shared;
+    }
+
+    public static ProtocolManagerWS createManager ()
+    {
+	return new ProtocolManagerWS();
+    }
+
+    private static ProtocolManagerWS _shared = new ProtocolManagerWS();
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wsc/ContextFactoryMapperWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,177 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextFactoryMapperImple.java,v 1.12.4.1 2005/11/22 10:34:09 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wsc;
+
+import com.arjuna.mw.wscf.common.CoordinatorXSD;
+import com.arjuna.mw.wscf.protocols.ProtocolManagerWS;
+import com.arjuna.mw.wscf.protocols.ProtocolRegistryWS;
+import com.arjuna.wsc.ContextFactoryMapperWS;
+import com.arjuna.wsc.ContextFactoryWS;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ContextFactoryMapperImple.java,v 1.11 2004/08/10 15:10:27
+ *          kconner Exp $
+ * @since 1.0.
+ */
+
+public class ContextFactoryMapperWSImple extends ContextFactoryMapperWS
+{
+
+	public ContextFactoryMapperWSImple()
+	{
+		_protocols = ProtocolRegistryWS.createManager();
+	}
+
+	public void addContextFactory (String coordinationTypeURI, ContextFactoryWS contextFactory)
+	{
+		try
+		{
+			_protocols.addProtocol(convert(coordinationTypeURI), contextFactory);
+
+			contextFactory.install(coordinationTypeURI);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	public void removeContextFactory (String coordinationTypeURI)
+	{
+		try
+		{
+			ContextFactoryWS contextFactory = (ContextFactoryWS) _protocols.removeProtocol(convert(coordinationTypeURI));
+
+			contextFactory.uninstall(coordinationTypeURI);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	/*
+	 * The factory implementation must initialise the activity service with the
+	 * correct HLS.
+	 */
+
+	public ContextFactoryWS getContextFactory (String coordinationTypeURI)
+	{
+		try
+		{
+			org.w3c.dom.Document doc = convert(coordinationTypeURI);
+			Object type = _protocols.getProtocolImplementation(convert(coordinationTypeURI));
+
+			if (type instanceof String)
+			{
+				Class c = Class.forName((String) type);
+
+				ContextFactoryWS factory = (ContextFactoryWS) c.newInstance();
+
+				_protocols.replaceProtocol(doc, factory);
+
+				return factory;
+			}
+			else
+			{
+				return (ContextFactoryWS) type;
+			}
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+
+		return null;
+	}
+
+	public void setSubordinateContextFactoryMapper (ContextFactoryMapperWS subordinateContextFactoryMapper)
+	{
+	}
+
+	public ContextFactoryMapperWS getSubordinateContextFactoryMapper ()
+	{
+		return null;
+	}
+
+	public void setDefaultContextFactory (ContextFactoryWS defaultContextFactory)
+	{
+	}
+
+	public ContextFactoryWS getDefaultContextFactory ()
+	{
+		return null;
+	}
+
+	private org.w3c.dom.Document convert (String coordinationTypeURI)
+			throws Exception
+	{
+		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+		DocumentBuilder builder = factory.newDocumentBuilder();
+		org.w3c.dom.Document doc = builder.newDocument();
+		org.w3c.dom.Element rootElement = doc.createElement(_wscRootElement);
+		org.w3c.dom.Element elem = doc.createElement(CoordinatorXSD.coordinatorType);
+
+		elem.appendChild(doc.createTextNode(coordinationTypeURI));
+
+		rootElement.appendChild(elem);
+
+		doc.appendChild(rootElement);
+
+		return doc;
+	}
+
+	private void writeObject (java.io.ObjectOutputStream objectOutputStream)
+			throws java.io.IOException
+	{
+	}
+
+	private void readObject (java.io.ObjectInputStream objectInputStream)
+			throws java.io.IOException, ClassNotFoundException
+	{
+	}
+
+	public static final String localName ()
+	{
+		// return "com/arjuna/mwlabs/wsc/contextfactorymapper";
+		return "comarjunamwlabswsccontextfactorymapperws";
+	}
+
+	private ProtocolManagerWS _protocols;
+
+	private static final String _wscRootElement = "WS-C";
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/InitializerWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/InitializerWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/classes/com/arjuna/mwlabs/wscf/protocols/InitializerWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Initializer.java,v 1.7 2005/05/19 12:13:39 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wscf.protocols;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.logging.wscfLogger;
+import com.arjuna.mw.wscf.protocols.ProtocolManager;
+import com.arjuna.mw.wscf.protocols.ProtocolManagerWS;
+import com.arjuna.mwlabs.wscf.utils.ProtocolLocator;
+
+/**
+ * Register all of the default coordination protocols with the system.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: Initializer.java,v 1.7 2005/05/19 12:13:39 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class InitializerWS
+{
+
+    public InitializerWS(ProtocolManagerWS manager) throws SystemException
+    {
+	_manager = null;
+
+	try
+	{
+	    com.arjuna.mw.wsas.utils.Configuration.initialise("/wscf.xml");
+	}
+	catch (java.io.FileNotFoundException ex)
+	{
+	}
+	catch (Exception ex)
+	{
+	}
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wscf.protocols.InitializerWS_1 [com.arjuna.mwlabs.wscf.protocols.InitializerWS_1] - Failed to create:
+     */
+
+    private final void addProtocol (String impl) throws SystemException
+    {
+	try
+	{
+	    // add in ArjunaCore support
+
+	    ProtocolLocator pl = new ProtocolLocator(impl);
+	    org.w3c.dom.Document doc = pl.getProtocol();
+
+	    if (doc == null)
+	    {
+		throw new SystemException(wscfLogger.log_mesg.getString("com.arjuna.mwlabs.wscf.protocols.InitializerWS_1")+impl);
+	    }
+	    else
+	    {
+		_manager.addProtocol(doc, impl);
+	    }
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private ProtocolManager _manager;
+
+}
\ No newline at end of file

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -37,6 +37,14 @@
 	    <property
 	    name="com.arjuna.mw.wscf.protocolImplementation4"
 	    value="com.arjuna.mwlabs.wst.ba.ContextFactoryImple"/>
+
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation1"
+        value="com.arjuna.mwlabs.wst.at.ContextFactoryWSImple"/>
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation2"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple"/>
+
 	    <property
 	    name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
 	    value="XTSObjectStore"/>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf11.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf11.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/config/wscf11.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,52 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+
+<wscf-config>
+	<properties>
+	    <property name="com.arjuna.mw.wsas.deploymentContext"
+	    value="com.arjuna.mwlabs.wst.at.context.DeploymentContextImple"/>
+	    <property name="com.arjuna.mw.wscf.protocols.twophase.context"
+	    value="com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation1"
+	    value="com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation2"
+	    value="com.arjuna.mwlabs.wst.at.ContextFactoryImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation3"
+	    value="com.arjuna.mwlabs.wscf.model.sagas.arjunacore.SagasHLSImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation4"
+	    value="com.arjuna.mwlabs.wst.ba.ContextFactoryImple"/>
+
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation1"
+        value="com.arjuna.mwlabs.wst.at.ContextFactoryWSImple"/>
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation2"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple"/>
+
+	    <property
+	    name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+	    value="XTSObjectStore"/>
+	</properties>
+</wscf-config>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf11_web-app.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf11_web-app.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSCF/xml/wscf11_web-app.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,32 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+    <display-name>Arjuna WS-CF11</display-name>
+
+    <description>Arjuna WS-CF11</description>
+
+    <listener>
+        <listener-class>com.arjuna.mw.wsc.deploy.WSCFWSInitialisation</listener-class>
+    </listener>
+</web-app>

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -50,13 +50,17 @@
     <property name="jta.lib.jars" value="jbossjta.jar"/>
     <property name="jta.ext.jars" value="jbossts-common.jar"/>
     <property name="jta.ext.compile.jars" value="commons-logging.jar"/>
-    <property name="xts.ext.compile.jars" value="jaxrpc.jar saaj-api.jar servlet.jar stax-api-1.0.jar wstx-asl-2.0.3.jar glue.jar jaxws-2_1-mrel2-api.jar"/>
+    <property name="xts.ext.compile.jars" value="jaxrpc.jar saaj-api.jar servlet.jar stax-api-1.0.jar wstx-asl-2.0.3.jar glue.jar jaxws-2_1-mrel2-api.jar wsbrew.jar"/>
 
     <property name="wsas.libs" value="wsas.jar"/>
     <property name="wsc.libs" value="ws-c.jar"/>
     <property name="wscf.libs" value="wscf.jar"/>
     <property name="wst.libs" value="ws-t.jar"/>
 
+    <!-- we need gf jars from the gf lib dir -->
+    <property name="gf.dir" value="${env.GF_HOME}/lib"/>
+    <property name="gf.lib.jars" value="javaee.jar"/>
+
     <!-- Define classpath builder task -->
     <path id="com.arjuna.buildsystem.classpath">
         <fileset dir="${com.arjuna.buildsystem.lib}" includes="${com.arjuna.buildsystem.lib.jars}"/>
@@ -85,6 +89,9 @@
         <fileset dir="${com.arjuna.mwlabs.wsc.jar.dest}" includes="${wsc.libs}"/>
         <fileset dir="${com.arjuna.mwlabs.wscf.jar.dest}" includes="${wscf.libs}"/>
         <fileset dir="${com.arjuna.mwlabs.wst.jar.dest}" includes="${wst.libs}"/>
+	<!-- add extra gf jars to path -->
+        <fileset dir="${gf.dir}" includes="${gf.lib.jars}"/>
+
     </path>
 
 	<!-- Initialisation -->
@@ -141,17 +148,32 @@
 		<copy file="xml/UserTwoPhaseTx.xml"
 		tofile="${com.arjuna.mwlabs.wstx.dest}/com/arjuna/mwlabs/wstx/model/as/twophase/UserTwoPhaseTx.xml"/>
 
-		<copy file="xml/AtomicTransaction.xml"
+        <copy file="xml/AtomicTransaction.xml"
 		tofile="${com.arjuna.mwlabs.wstx.dest}/com/arjuna/mwlabs/wst/at/ContextFactoryImple.xml"/>
 		<copy file="xml/BusinessActivity.xml"
 		tofile="${com.arjuna.mwlabs.wstx.dest}/com/arjuna/mwlabs/wst/ba/ContextFactoryImple.xml"/>
 
+        <copy file="xml/AtomicTransaction11.xml"
+		tofile="${com.arjuna.mwlabs.wstx.dest}/com/arjuna/mwlabs/wst/at/ContextFactoryWSImple.xml"/>
+		<copy file="xml/BusinessActivity11.xml"
+		tofile="${com.arjuna.mwlabs.wstx.dest}/com/arjuna/mwlabs/wst/ba/ContextFactoryWSImple.xml"/>
+
+<!--
 		<jar jarfile="${com.arjuna.mwlabs.wstx.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"
             basedir="${com.arjuna.mwlabs.wstx.dest}">
             <manifest>
                 <attribute name="Class-Path" value="${wst.libs} ${wscf.libs}"/>
             </manifest>
         </jar>
+-->
+		<jar jarfile="${com.arjuna.mwlabs.wstx.jar.dest}/${com.arjuna.mwlabs.ts.modulename}.jar"
+		     basedir="${com.arjuna.mwlabs.wstx.dest}">
+		    <manifest>
+		        <attribute name="Class-Path" value="${wst.libs} ${wscf.libs}"/>
+		    </manifest>
+		    <fileset dir="../WS-C/build/dev/dd/" includes="wsdl/*"/>
+		    <fileset dir="../WS-T/build/dev/dd/" includes="wsdl/*"/>
+		</jar>
 	</target>
 
 	<target name="com.arjuna.mw.wstx.htdocs"

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactoryWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactoryWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerFactoryWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessActivityManagerFactory.java,v 1.4.8.1 2005/11/22 10:36:06 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+
+public class BusinessActivityManagerFactoryWS
+{
+    public static BusinessActivityManagerWS businessActivityManager ()
+    {
+        return BusinessActivityManagerWS.getBusinessActivityManager() ;
+	}
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/BusinessActivityManagerWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessActivityManager.java,v 1.4.8.1 2005/11/22 10:36:05 kconner Exp $
+ */
+
+package com.arjuna.mw.wst;
+
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wst.*;
+
+/**
+ * This is the interface that the core exposes in order to allow different
+ * types of participants to be enrolled. The messaging layer continues to
+ * work in terms of the registrar, but internally we map to one of these
+ * methods.
+ *
+ * As with UserTransaction a TransactionManager does not represent a specific
+ * transaction, but rather is responsible for providing access to an implicit
+ * per-thread transaction context.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BusinessActivityManager.java,v 1.4.8.1 2005/11/22 10:36:05 kconner Exp $
+ * @since XTS 1.0.
+ */
+
+public abstract class BusinessActivityManagerWS
+{
+    /**
+     * The manager.
+     */
+    private static BusinessActivityManagerWS MANAGER ;
+    
+    /**
+     * Get the business activity manager.
+     * @return The business activity manager.
+     */
+    public static synchronized BusinessActivityManagerWS getBusinessActivityManager()
+    {
+        return MANAGER ;
+    }
+    
+    /**
+     * Set the business activity manager.
+     * @param manager The business activity manager.
+     */
+    public static synchronized void setBusinessActivityManager(final BusinessActivityManagerWS manager)
+    {
+        MANAGER = manager ;
+    }
+
+    /**
+     * Enlist a participant for the BusinessAgreement protocol.
+     *
+     * @return the BAParticipantManager for this transaction.
+     */
+    public abstract BAParticipantManagerWS enlistForBusinessAgreementWithParticipantCompletion(
+        final BusinessAgreementWithParticipantCompletionParticipant bap, final String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException;
+
+    /**
+     * Enlist a participant for the BusinessAgreementWithCoordinatorCompletion protocol.
+     *
+     * @return the BAParticipantManager for this transaction.
+     */
+    public abstract BAParticipantManagerWS enlistForBusinessAgreementWithCoordinatorCompletion(
+        final BusinessAgreementWithCoordinatorCompletionParticipant bawcp, final String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException;
+
+    /**
+     * The resume method can be used to (re-)associate a thread with a 
+     * transaction(s) via its TxContext. Prior to association, the thread is
+     * disassociated with any transaction(s) with which it may be currently
+     * associated. If the TxContext is null, then the thread is associated with
+     * no transaction. The UnknownTransactionException exception is thrown if
+     * the transaction that the TxContext refers to is invalid in the scope of
+     * the invoking thread.
+     */
+    public abstract void resume(final TxContext txContext)
+        throws UnknownTransactionException, SystemException;
+
+    /**
+     * A thread of control may require periods of non-transactionality so that
+     * it may perform work that is not associated with a specific transaction.
+     * In order to do this it is necessary to disassociate the thread from any
+     * transactions. The suspend method accomplishes this, returning a
+     * TxContext instance, which is a handle on the transaction. The thread is
+     * then no longer associated with any transaction.
+     */
+    public abstract TxContext suspend()
+        throws SystemException;
+    
+    /**
+     * The currentTransaction method returns the TxContext for the current
+     * transaction, or null if there is none. Unlike suspend, this method does
+     * not disassociate the current thread from the transaction(s). This can
+     * be used to enable multiple threads to execute within the scope of the
+     * same transaction.
+     */
+    public abstract TxContext currentTransaction()
+        throws SystemException;
+    
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxBaseHeaderContextProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,233 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2007,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wst.client;
+
+import com.arjuna.mw.wsc.context.ContextWS;
+import com.arjuna.mw.wst.*;
+import com.arjuna.mw.wst.common.CoordinationContextHelperWS;
+import com.arjuna.mw.wst.common.SOAPUtil;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.soap.*;
+import java.util.Iterator;
+
+/**
+ * Common base class for classes used to perform
+ * WS-Transaction context manipulation on SOAP messages.
+ *
+ * @message com.arjuna.mw.wst.client.JaxHCPWS_1 [com.arjuna.mw.wst.client.JaxHCPWS_1] - Error in:
+ * @message com.arjuna.mw.wst.client.JaxHCPWS_2 [com.arjuna.mw.wst.client.JacHCP_2] - Stack trace:
+ */
+class JaxBaseHeaderContextProcessorWS
+{
+    /**
+     * Handle the request.
+     * @param soapMessage The current message context.
+     */
+
+    public boolean handleOutboundMessage(final SOAPMessage soapMessage)
+    {
+        if (soapMessage == null)
+        {
+            return true ;
+        }
+
+        try
+        {
+            /*
+             * There should either be an Atomic Transaction *or* a Business Activity
+             * associated with the thread.
+             */
+            final TransactionManager transactionManager = TransactionManagerFactory.transactionManager() ;
+            final BusinessActivityManagerWS businessActivityManager = BusinessActivityManagerFactoryWS.businessActivityManager() ;
+
+            final ContextWS atContext ;
+            if (transactionManager != null)
+            {
+                final com.arjuna.mwlabs.wst.at.context.TxContextWSImple txContext =
+                    (com.arjuna.mwlabs.wst.at.context.TxContextWSImple)transactionManager.currentTransaction() ;
+                atContext = (txContext == null ? null : txContext.context()) ;
+            }
+            else
+            {
+                atContext = null ;
+            }
+
+            final ContextWS baContext ;
+            if (businessActivityManager != null)
+            {
+                final com.arjuna.mwlabs.wst.ba.context.TxContextWSImple txContext =
+                    (com.arjuna.mwlabs.wst.ba.context.TxContextWSImple)businessActivityManager.currentTransaction() ;
+                baContext = (txContext == null ? null : txContext.context()) ;
+            }
+            else
+            {
+                baContext = null ;
+            }
+
+            final CoordinationContextType coordinationContext ;
+            if (atContext != null)
+            {
+                coordinationContext = atContext.getCoordinationContext() ;
+            }
+            else if (baContext != null)
+            {
+                coordinationContext = baContext.getCoordinationContext() ;
+            }
+            else
+            {
+                coordinationContext = null ;
+            }
+
+            if (coordinationContext != null)
+            {
+                final SOAPEnvelope env = soapMessage.getSOAPPart().getEnvelope() ;
+                SOAPHeader header = env.getHeader() ;
+                if (header == null)
+                {
+                    header = env.addHeader() ;
+                }
+                final Name name = env.createName(CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT, CoordinationConstantsWS.WSCOOR_PREFIX, CoordinationConstants.WSCOOR_NAMESPACE) ;
+                final SOAPHeaderElement headerElement = header.addHeaderElement(name) ;
+                headerElement.addNamespaceDeclaration(CoordinationConstantsWS.WSCOOR_PREFIX, CoordinationConstantsWS.WSCOOR_NAMESPACE) ;
+                headerElement.setMustUnderstand(true) ;
+                CoordinationContextHelperWS.serialise(coordinationContext, headerElement) ;
+            }
+        }
+        catch (final Throwable th)
+        {
+	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_1",
+					  new Object[]{"com.arjuna.mw.wst.client.JaxBaseHeaderContextProcessorWS.handleRequest()"});
+
+	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_2",
+					  new Object[]{th});
+
+            th.printStackTrace(System.err) ;
+        }
+
+        return true ;
+    }
+
+    /**
+     * Resume the current transaction.
+     *
+     * @message com.arjuna.mw.wst.client.JaxHCPWS_3 [com.arjuna.mw.wst.client.JaxHCPWS_3] - Unknown context type:
+     */
+
+    protected void resumeTransaction(final SOAPMessage soapMessage)
+    {
+        if (soapMessage != null)
+        {
+            try
+            {
+                final SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope() ;
+                final SOAPHeaderElement soapHeaderElement = getHeaderElement(soapEnvelope, CoordinationConstantsWS.WSCOOR_NAMESPACE, CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelperWS.deserialise(soapHeaderElement) ;
+                    if (cc != null)
+                    {
+                        final String coordinationType = cc.getCoordinationType() ;
+                        if (AtomicTransactionWSConstants.WSAT_PROTOCOL.equals(coordinationType))
+                        {
+                            final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextWSImple(cc) ;
+                            TransactionManagerFactory.transactionManager().resume(txContext) ;
+                        }
+                        else if (BusinessActivityWSConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                        {
+                            final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextWSImple(cc);
+                            BusinessActivityManagerFactoryWS.businessActivityManager().resume(txContext) ;
+                        }
+                        else
+                        {
+            			    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_1",
+    			                new Object[]{"com.arjuna.mw.wst.client.JaxBaseHeaderContextProcessorWS.resumeTransaction()"});
+
+            			    wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_3",
+                                new Object[]{coordinationType});
+                        }
+                    }
+                }
+            }
+            catch (final Throwable th)
+            {
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_1",
+                    new Object[]{"com.arjuna.mw.wst.client.JaxBaseHeaderContextProcessorWS.resumeTransaction()"});
+
+        		wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.client.JaxHCPWS_2",
+                    new Object[]{th});
+            }
+        }
+    }
+
+    /**
+     * Retrieve the first header matching the uri and name.
+     * @param soapEnvelope The soap envelope containing the header.
+     * @param uri The uri of the header element.
+     * @param name The name of the header element.
+     * @return The header element or null if not found.
+     */
+    private SOAPHeaderElement getHeaderElement(final SOAPEnvelope soapEnvelope, final String uri, final String name)
+        throws SOAPException
+    {
+        final SOAPHeader soapHeader = soapEnvelope.getHeader() ;
+        if (soapHeader != null)
+        {
+            final Iterator headerIter = SOAPUtil.getChildElements(soapHeader) ;
+            while(headerIter.hasNext())
+            {
+                final SOAPHeaderElement current = (SOAPHeaderElement)headerIter.next() ;
+                final Name currentName = current.getElementName() ;
+                if ((currentName != null) &&
+                    match(name, currentName.getLocalName()) &&
+                    match(uri, currentName.getURI()))
+                {
+                    return current ;
+                }
+            }
+        }
+        return null ;
+    }
+
+    /**
+     * Do the two references match?
+     * @param lhs The first reference.
+     * @param rhs The second reference.
+     * @return true if the references are both null or if they are equal.
+     */
+    private boolean match(final Object lhs, final Object rhs)
+    {
+        if (lhs == null)
+        {
+            return (rhs == null) ;
+        }
+        else
+        {
+            return lhs.equals(rhs) ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/client/JaxWSHeaderContextProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2007,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wst.client;
+
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages using JaxWS.
+ * This is the client side version.
+ */
+public class JaxWSHeaderContextProcessorWS extends JaxBaseHeaderContextProcessorWS implements SOAPHandler<SOAPMessageContext>
+{
+    /**
+     * Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+     *
+     * @param msgContext
+     * @return true
+     */
+    public boolean handleMessage(SOAPMessageContext msgContext)
+    {
+        Boolean outbound = (Boolean)msgContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+        if (outbound == null)
+            throw new IllegalStateException("Cannot obtain required property: " + MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+
+        return outbound ? handleOutbound(msgContext) : handleInbound(msgContext);
+    }
+
+    /**
+     * Tidy up the Transaction/Thread association.
+     *
+     * @param messageContext
+     * @return true
+     */
+    public boolean handleFault(SOAPMessageContext messageContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)messageContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        resumeTransaction(soapMessage);
+        return true;
+    }
+
+    public void close(MessageContext messageContext)
+    {
+    }
+
+    /**
+     * Gets the header blocks that can be processed by this Handler instance.
+     */
+    public Set<QName> getHeaders()
+    {
+        Set<QName> headerSet = new HashSet<QName>();
+        headerSet.add(new QName(CoordinationConstantsWS.WSCOOR_NAMESPACE, CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT));
+
+        return headerSet;
+    }
+
+    /**
+     * Sets the header blocks that can be processed by this Handler instance.
+     * Note: this impl ignores this function's args as the values are hardcoded.
+     */
+    public void setHeaders(Set headers)
+    {
+    }
+
+    /**
+     * Tidy up the Transaction/Thread association before control is returned to the user.
+     *
+     * @param messageContext
+     * @return true
+     */
+    protected boolean handleInbound(SOAPMessageContext messageContext)
+    {
+        final SOAPMessage soapMessage = messageContext.getMessage() ;
+
+        resumeTransaction(soapMessage);
+        return true ;
+    }
+
+    /**
+     * Process the tx thread context and attach serialized version as msg header
+     *
+     * @param messageContext
+     * @return true
+     */
+    protected boolean handleOutbound(SOAPMessageContext messageContext)
+    {
+        final SOAPMessage soapMessage = messageContext.getMessage() ;
+
+        return handleOutboundMessage(soapMessage);
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelperWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelperWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/common/CoordinationContextHelperWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wst.common;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+import org.w3c.dom.Element;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.stream.XMLStreamException;
+
+/**
+ * Helper class for serialising Coordination Contexts into SOAP headers.
+ * @author kevin
+ */
+public class CoordinationContextHelperWS
+{
+   /**
+     * Deserialise a coordination context from a DOM SOAP Header Element.
+     * @param headerElement The SOAP header element to deserialise.
+     * @return The coordination context.
+     * @throws javax.xml.stream.XMLStreamException for errors during parsing.
+     */
+    public static CoordinationContextType deserialise(final Element headerElement)
+        throws JAXBException
+    {
+        try {
+            JAXBContext jaxbContext = JAXBContext.newInstance("org.oasis_open.docs.ws_tx.wscoor._2006._06");
+            Unmarshaller unmarshaller;
+            unmarshaller = jaxbContext.createUnmarshaller();
+            CoordinationContextType coordinationContextType = (CoordinationContextType)unmarshaller.unmarshal(headerElement);
+
+            return coordinationContextType;
+        } catch (JAXBException jaxbe) {
+            return null;
+        }
+    }
+
+    /**
+      * Deserialise a coordination context from a DOM SOAP Header Element.
+      * @param headerElement The SOAP header element to deserialise.
+      * @return The coordination context.
+      * @throws javax.xml.stream.XMLStreamException for errors during parsing.
+      */
+    public static void serialise(final CoordinationContextType  coordinationContextType, Element headerElement)
+        throws JAXBException
+    {
+        try {
+            JAXBContext jaxbContext = JAXBContext.newInstance("org.oasis_open.docs.ws_tx.wscoor._2006._06");
+            Marshaller marshaller;
+            marshaller = jaxbContext.createMarshaller();
+            marshaller.marshal(coordinationContextType, headerElement);
+        } catch (JAXBException jaxbe) {
+        }
+    }
+}
\ No newline at end of file

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/WSTXInitialisation.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/WSTXInitialisation.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/deploy/WSTXInitialisation.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -20,29 +20,25 @@
  */
 package com.arjuna.mw.wst.deploy;
 
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.text.MessageFormat;
+import com.arjuna.mw.wsas.utils.Configuration;
+import com.arjuna.mw.wst.*;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.ba.remote.BusinessActivityManagerWSImple;
+import com.arjuna.services.framework.startup.Sequencer;
+import com.arjuna.webservices.util.ClassLoaderHelper;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.text.MessageFormat;
 
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import com.arjuna.mw.wsas.utils.Configuration;
-import com.arjuna.mw.wst.BusinessActivityManager;
-import com.arjuna.mw.wst.TransactionManager;
-import com.arjuna.mw.wst.UserBusinessActivity;
-import com.arjuna.mw.wst.UserTransaction;
-import com.arjuna.mw.wstx.logging.wstxLogger;
-import com.arjuna.webservices.util.ClassLoaderHelper;
-import com.arjuna.services.framework.startup.Sequencer;
-
 /**
  * Initialise WSTX.
  * @author kevin
@@ -130,7 +126,9 @@
         UserTransaction.setUserTransaction((UserTransaction)ClassLoaderHelper.forName(getClass(), userTx).newInstance()) ;
         TransactionManager.setTransactionManager((TransactionManager)ClassLoaderHelper.forName(getClass(), txManager).newInstance()) ;
         UserBusinessActivity.setUserBusinessActivity((UserBusinessActivity)ClassLoaderHelper.forName(getClass(), userBa).newInstance()) ;
-        BusinessActivityManager.setBusinessActivityManager((BusinessActivityManager)ClassLoaderHelper.forName(getClass(), baManager).newInstance()) ;
+        BusinessActivityManager.setBusinessActivityManager((BusinessActivityManager)ClassLoaderHelper.forName(getClass(), baManager).newInstance());
+        // we only have one choice for the 1.1 business activity manager
+        BusinessActivityManagerWS.setBusinessActivityManager(BusinessActivityManagerWSImple.class.newInstance());
     }
 
     /**

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxBaseHeaderContextProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,187 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2007,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wst.service;
+
+import com.arjuna.mw.wst.*;
+import com.arjuna.mw.wst.common.CoordinationContextHelperWS;
+import com.arjuna.mw.wst.common.SOAPUtil;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.soap.*;
+import java.util.Iterator;
+
+/**
+ * Common base class for classes used to perform
+ * WS-Transaction context manipulation on SOAP messages.
+ *
+ * @message com.arjuna.mw.wst.service.JaxHCPWS_1 [com.arjuna.mw.wst.service.JaxHCPWS_1] - Error in:
+ * @message com.arjuna.mw.wst.service.JaxHCPWS_2 [com.arjuna.mw.wst.service.JaxHCPWS_2] - Stack trace:
+ * @message com.arjuna.mw.wst.service.JaxHCPWS_3 [com.arjuna.mw.wst.service.JaxHCPWS_3] - Unknown context type:
+ */
+class JaxBaseHeaderContextProcessorWS
+{
+    /**
+     * Handle the request.
+     * @param soapMessage The current message context.
+     */
+    protected boolean handleInboundMessage(final SOAPMessage soapMessage)
+    {
+        if (soapMessage != null)
+        {
+            try
+            {
+                final SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope() ;
+                final SOAPHeader soapHeader = soapEnvelope.getHeader() ;
+                final SOAPHeaderElement soapHeaderElement = getHeaderElement(soapHeader, CoordinationConstantsWS.WSCOOR_NAMESPACE, CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT) ;
+
+                if (soapHeaderElement != null)
+                {
+                    final CoordinationContextType cc = CoordinationContextHelperWS.deserialise(soapHeaderElement) ;
+                    final String coordinationType = cc.getCoordinationType();
+                    if (AtomicTransactionWSConstants.WSAT_PROTOCOL.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.at.context.TxContextWSImple(cc) ;
+                        TransactionManagerFactory.transactionManager().resume(txContext) ;
+                        clearMustUnderstand(soapHeader, soapHeaderElement) ;
+                    }
+                    else if (BusinessActivityWSConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationType))
+                    {
+                        final TxContext txContext = new com.arjuna.mwlabs.wst.ba.context.TxContextWSImple(cc);
+                        BusinessActivityManagerFactory.businessActivityManager().resume(txContext) ;
+                        clearMustUnderstand(soapHeader, soapHeaderElement) ;
+                    }
+                    else
+                    {
+                        wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_1",
+                                new Object[]{"com.arjuna.mw.wst.service.JaxBaseHeaderContextProcessorWS.handleRequest(MessageContext context)"});
+
+                        wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_3",
+                                new Object[]{coordinationType});
+                    }
+                }
+            }
+            catch (final Throwable th)
+            {
+                wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_1",
+                        new Object[]{"com.arjuna.mw.wst.service.JaxBaseHeaderContextProcessorWS.handleRequest(MessageContext context)"});
+
+                wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_2",
+                        new Object[]{th});
+            }
+        }
+        return true ;
+    }
+
+    /**
+     * Suspend the current transaction.
+     */
+    protected void suspendTransaction()
+    {
+        try
+        {
+            /*
+             * There should either be an Atomic Transaction *or* a Business Activity
+             * associated with the thread.
+             */
+            final TransactionManager transactionManager = TransactionManagerFactory.transactionManager() ;
+            final BusinessActivityManager businessActivityManager = BusinessActivityManagerFactory.businessActivityManager() ;
+
+            if (transactionManager != null)
+            {
+                transactionManager.suspend() ;
+            }
+
+            if (businessActivityManager != null)
+            {
+                businessActivityManager.suspend() ;
+            }
+        }
+        catch (final Throwable th)
+        {
+            wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_1",
+                    new Object[]{"com.arjuna.mw.wst.service.JaxBaseHeaderContextProcessorWS.suspendTransaction()"});
+
+            wstxLogger.arjLoggerI18N.warn("com.arjuna.mw.wst.service.JaxHCPWS_2",
+                    new Object[]{th});
+
+            th.printStackTrace(System.err) ;
+        }
+    }
+
+    /**
+     * Clear the soap MustUnderstand.
+     * @param soapHeader The SOAP header.
+     * @param soapHeaderElement The SOAP header element.
+     */
+    private void clearMustUnderstand(final SOAPHeader soapHeader, final SOAPHeaderElement soapHeaderElement)
+            throws SOAPException
+    {
+        final Name headerName = soapHeader.getElementName() ;
+
+        final SOAPFactory factory = SOAPFactory.newInstance() ;
+        final Name attributeName = factory.createName("mustUnderstand", headerName.getPrefix(), headerName.getURI()) ;
+
+        soapHeaderElement.removeAttribute(attributeName) ;
+    }
+
+    private SOAPHeaderElement getHeaderElement(final SOAPHeader soapHeader, final String uri, final String name)
+            throws SOAPException
+    {
+        if (soapHeader != null)
+        {
+            final Iterator headerIter = SOAPUtil.getChildElements(soapHeader) ;
+            while(headerIter.hasNext())
+            {
+                final SOAPHeaderElement current = (SOAPHeaderElement)headerIter.next() ;
+                final Name currentName = current.getElementName() ;
+                if ((currentName != null) &&
+                        match(name, currentName.getLocalName()) &&
+                        match(uri, currentName.getURI()))
+                {
+                    return current ;
+                }
+            }
+        }
+        return null ;
+    }
+
+    /**
+     * Do the two references match?
+     * @param lhs The first reference.
+     * @param rhs The second reference.
+     * @return true if the references are both null or if they are equal.
+     */
+    private boolean match(final Object lhs, final Object rhs)
+    {
+        if (lhs == null)
+        {
+            return (rhs == null) ;
+        }
+        else
+        {
+            return lhs.equals(rhs) ;
+        }
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessorWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessorWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mw/wst/service/JaxWSHeaderContextProcessorWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2007,
+ * @author JBoss Inc.
+ */
+package com.arjuna.mw.wst.service;
+
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * The class is used to perform WS-Transaction context insertion
+ * and extraction for application level SOAP messages using JaxWS.
+ * This is the server side version.
+ */
+public class JaxWSHeaderContextProcessorWS extends JaxBaseHeaderContextProcessorWS implements SOAPHandler<SOAPMessageContext>
+{
+    /**
+     * Process a message. Determines if it is inbound or outbound and dispatches accordingly.
+     *
+     * @param msgContext
+     * @return true
+     */
+    public boolean handleMessage(SOAPMessageContext msgContext)
+    {
+        Boolean outbound = (Boolean)msgContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+        if (outbound == null)
+            throw new IllegalStateException("Cannot obtain required property: " + MessageContext.MESSAGE_OUTBOUND_PROPERTY);
+
+        return outbound ? handleOutbound(msgContext) : handleInbound(msgContext);
+    }
+
+    /**
+     * Tidy up the Transaction/Thread association before faults are thrown back to the client.
+     *
+     * @param messageContext
+     * @return true
+     */
+    public boolean handleFault(SOAPMessageContext messageContext)
+    {
+        suspendTransaction() ;
+        return true;
+    }
+
+    public void close(MessageContext messageContext)
+    {
+    }
+
+    /**
+     * Gets the header blocks that can be processed by this Handler instance.
+     */
+    public Set<QName> getHeaders()
+    {
+        Set<QName> headerSet = new HashSet<QName>();
+        headerSet.add(new QName(CoordinationConstantsWS.WSCOOR_NAMESPACE, CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT));
+
+        return headerSet;
+    }
+
+    /**
+     * Sets the header blocks that can be processed by this Handler instance.
+     * Note: this impl ignores this function's args as the values are hardcoded.
+     */
+    public void setHeaders(Set headers)
+    {
+    }
+
+
+    /**
+     * Process the tx context header that is attached to the received message.
+     *
+     * @param msgContext
+     * @return true
+     */
+    protected boolean handleInbound(SOAPMessageContext msgContext)
+    {
+        final SOAPMessageContext soapMessageContext = (SOAPMessageContext)msgContext ;
+        final SOAPMessage soapMessage = soapMessageContext.getMessage() ;
+
+        return handleInboundMessage(soapMessage);
+    }
+
+    /**
+     * Tidy up the Transaction/Thread association before response is returned to the client.
+     *
+     * @param messageContext The current message context.
+     * @return true
+     */
+    protected boolean handleOutbound(SOAPMessageContext messageContext)
+    {
+        suspendTransaction() ;
+        return true;
+    }
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextFactoryWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,282 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextFactoryImple.java,v 1.16.4.1 2005/11/22 10:36:21 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at;
+
+import com.arjuna.mw.wsas.exceptions.NoActivityException;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wscf.coordinator.LocalFactory;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple;
+import com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple;
+import com.arjuna.mwlabs.wst.at.participants.CleanupSynchronizationWS;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.ContextFactoryWS;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.InvalidProtocolException;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+public class ContextFactoryWSImple implements ContextFactoryWS, LocalFactory
+{
+	public ContextFactoryWSImple()
+	{
+		try
+		{
+			_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+            _theRegistrar = new RegistrarWSImple();
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	/**
+	 * Called when a context factory is added to a context factory mapper. This
+	 * method will be called multiple times if the context factory is added to
+	 * multiple context factory mappers or to the same context mapper with
+	 * different protocol identifiers.
+	 *
+	 * @param coordinationTypeURI
+	 *            the coordination type uri
+	 */
+	public void install(final String coordinationTypeURI)
+	{
+	}
+
+	// TODO interposition
+
+	/*
+	 * If there is a context passed through to create then this newly created
+	 * coordinator should be interposed.
+	 */
+
+	/**
+	 * Creates a coordination context.
+	 *
+	 * @param coordinationTypeURI
+	 *            the coordination type uri
+	 * @param expires
+	 *            the expire date/time for the returned context, can be null
+	 * @param currentContext
+	 *            the current context, can be null
+	 *
+	 * @return the created coordination context
+	 *
+	 * @throws com.arjuna.wsc.InvalidCreateParametersException
+	 *             if a parameter passed is invalid this activity identifier.
+	 *
+	 * @message com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_1
+	 *          [com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_1] - Invalid type
+	 *          URI: < {0} , {1} >
+	 * @message com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_3
+	 *          [com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_3] - Invalid type
+	 *          URI:
+	 */
+
+	public CoordinationContext create (final String coordinationTypeURI, final Long expires,
+            final CoordinationContextType currentContext)
+			throws InvalidCreateParametersException
+	{
+		if (coordinationTypeURI.equals(AtomicTransactionWSConstants.WSAT_PROTOCOL))
+		{
+			try
+			{
+				// make sure no transaction is currently associated
+
+				_coordManager.suspend();
+
+				final int timeout ;
+                if (expires == null)
+                {
+                    timeout = 0 ;
+                }
+                else
+                {
+                    final long timeoutVal = expires.longValue() ;
+                    timeout = (timeoutVal > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int)timeoutVal) ;
+                }
+
+				_coordManager.begin(timeout);
+
+                final ArjunaContextWSImple arjunaContext = ArjunaContextWSImple.getContext() ;
+                final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+                final String registrationCoordinatorURI = serviceRegistry.getServiceURI(CoordinationConstantsWS.REGISTRATION_SERVICE_NAME) ;
+
+                final CoordinationContext coordinationContext = new CoordinationContext() ;
+                coordinationContext.setCoordinationType(coordinationTypeURI);
+                CoordinationContextType.Identifier identifier = new CoordinationContextType.Identifier();
+                identifier.setValue("urn:"+arjunaContext.getTransactionIdentifier());
+                coordinationContext.setIdentifier(identifier) ;
+                final int transactionExpires = arjunaContext.getTransactionExpires();
+                if (transactionExpires > 0)
+                {
+                    Expires expiresInstance = new Expires();
+                    expiresInstance.setValue(transactionExpires);
+                    coordinationContext.setExpires(expiresInstance);
+                }
+                final W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+                builder.serviceName(CoordinationConstantsWS.REGISTRATION_SERVICE_QNAME);
+                builder.endpointName(CoordinationConstantsWS.REGISTRATION_ENDPOINT_QNAME);
+                // strictly we shouldn't need either of these in order to get an epref we can hand on
+                // to the client. since we are in the same Java EE app this should be enough to spec an
+                // epref which let sthe client call back to the registration endpoint. in fcat even if we
+                // supply wsdl and address we still only get a half-baked epref with no metadata installed.
+                // this menas any epref we create here is essentially useless: it cannot be use dto obtain
+                // a stub for calling back to the service nor can it be inspected to obtain the service
+                // name, endpoint name and address. however since JaxWS forces us to return this datatype
+                // when the wsdl specifies a WSA endpoint we have no choice about using it. snookered!
+                builder.address(registrationCoordinatorURI);
+                builder.wsdlDocumentLocation(registrationCoordinatorURI + "?wsdl");
+                InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, arjunaContext.getTransactionIdentifier());
+                W3CEndpointReference registrationCoordinator = builder.build();
+                coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+				/*
+				 * Now add the registrar for this specific coordinator to the
+				 * mapper.
+				 */
+
+				_coordManager.enlistSynchronization(new CleanupSynchronizationWS(_coordManager.identifier().toString(), _theRegistrar));
+
+				/*
+				 * TODO Uughh! This does a suspend for us! Left over from original
+				 * WS-AS stuff.
+				 *
+				 * TODO
+				 * REFACTOR, REFACTOR, REFACTOR.
+				 */
+
+				_theRegistrar.associate();
+
+				return coordinationContext;
+			}
+			catch (NoActivityException ex)
+			{
+				ex.printStackTrace();
+
+				throw new InvalidCreateParametersException();
+			}
+			catch (SystemException ex)
+			{
+				ex.printStackTrace();
+            }
+			catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+			{
+				ex.printStackTrace();
+
+				throw new InvalidCreateParametersException();
+			}
+			catch (Exception ex)
+			{
+				// TODO handle properly
+
+				ex.printStackTrace();
+			}
+		}
+		else
+		{
+			wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_1", new Object[]
+			{ AtomicTransactionWSConstants.WSAT_PROTOCOL, coordinationTypeURI });
+
+			throw new InvalidCreateParametersException(
+					wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.ContextFactoryImpleWS_3")
+							+ " < "
+							+ AtomicTransactionWSConstants.WSAT_PROTOCOL
+							+ ", "
+							+ coordinationTypeURI + " >");
+		}
+
+		return null;
+	}
+
+	/**
+	 * Called when a context factory is removed from a context factory mapper.
+	 * This method will be called multiple times if the context factory is
+	 * removed from multiple context factory mappers or from the same context
+	 * factory mapper with different coordination type uris.
+	 *
+	 * @param coordinationTypeURI
+	 *            the coordination type uri
+	 */
+
+	public void uninstall (final String coordinationTypeURI)
+	{
+		// we don't use this as one implementation is registered per type
+	}
+
+	public final Object createSubordinate () throws NoActivityException, InvalidProtocolException, SystemException
+	{
+		try
+		{
+			CoordinatorServiceImple coordManager = (CoordinatorServiceImple) _coordManager;
+			CoordinatorControl theControl = coordManager.coordinatorControl();
+			ACCoordinator subordinateTransaction = theControl.createSubordinate();
+
+			/*
+			 * Now add the registrar for this specific coordinator to the
+			 * mapper.
+			 */
+
+			subordinateTransaction.enlistSynchronization(new CleanupSynchronizationWS(subordinateTransaction.get_uid().stringForm(), _theRegistrar));
+
+			_theRegistrar.associate(subordinateTransaction);
+
+			return subordinateTransaction;
+		}
+		catch (Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	public final RegistrarWSImple registrar ()
+	{
+		return _theRegistrar;
+	}
+
+	private CoordinatorManager _coordManager;
+	private RegistrarWSImple _theRegistrar;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/ContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,50 @@
+package com.arjuna.mwlabs.wst.at;
+
+import com.arjuna.mw.wsc.context.ContextWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+/*
+ * this is created and managed using a JaxWS coordination context but it will interconvert to an old style context
+ * on demand, allowing interoperation between JaxWS based activator/ergistrator and the old style
+ * BA/AT participant services
+ */
+
+public class ContextWSImple implements ContextWS
+{
+
+	public ContextWSImple(final CoordinationContextType ctx)
+	{
+		_coordContext = ctx;
+    }
+
+	public boolean equals (Object obj)
+	{
+		if (obj instanceof ContextWSImple)
+		{
+			ContextWSImple ci = (ContextWSImple) obj;
+
+			return ci.getCoordinationContext().getIdentifier().getValue().equals(_coordContext.getIdentifier().getValue());
+		}
+		else
+			return false;
+	}
+
+	public String toString ()
+	{
+		// return DomUtil.nodeAsString(toXML());
+
+		return "AtomicTransactionIdentifier: " + _coordContext.getIdentifier().getValue();
+	}
+
+    public CoordinationContextType getCoordinationContext()
+    {
+        return _coordContext;
+    }
+
+    public void setCoordinationContext(CoordinationContextType cc)
+    {
+        _coordContext = cc;
+    }
+
+    private CoordinationContextType _coordContext;
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/RegistrarWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,300 @@
+package com.arjuna.mwlabs.wst.at;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+import com.arjuna.mw.wscf.model.twophase.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.subordinate.SubordinateCoordinator;
+import com.arjuna.mwlabs.wst.at.participants.CompletionCoordinatorWSImple;
+import com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant;
+import com.arjuna.mwlabs.wst.at.participants.VolatileTwoPhaseCommitParticipant;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessorWS;
+import com.arjuna.wsc.*;
+import com.arjuna.wst.CompletionCoordinatorParticipantWS;
+import com.arjuna.wst.stub.Durable2PCStubWS;
+import com.arjuna.wst.stub.Volatile2PCStubWS;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.util.HashMap;
+
+public class RegistrarWSImple implements RegistrarWS
+{
+	public RegistrarWSImple()
+        throws ProtocolNotRegisteredException, SystemException
+    {
+		_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+		// register with mapper using tx id as protocol identifier.
+        final RegistrarMapperWS mapper = RegistrarMapperWS.getFactory() ;
+
+		mapper.addRegistrar(AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC, this);
+		mapper.addRegistrar(AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC, this);
+		mapper.addRegistrar(AtomicTransactionConstants.WSAT_SUB_PROTOCOL_COMPLETION, this);
+	}
+
+	/**
+	 * Called when a registrar is added to a register mapper. This method will
+	 * be called multiple times if the registrar is added to multiple register
+	 * mappers or to the same register mapper with different protocol
+	 * identifiers.
+	 *
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void install (final String protocolIdentifier)
+	{
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 *
+	 * @param participantProtocolService
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 *
+	 * @return the PortReference of the coordinator protocol service
+	 *
+	 * @throws com.arjuna.wsc.AlreadyRegisteredException
+     *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws com.arjuna.wsc.InvalidProtocolException
+     *             if the coordination protocol is not supported
+	 * @throws com.arjuna.wsc.InvalidStateException
+     *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws com.arjuna.wsc.NoActivityException
+     *             if the activity does not exist.
+	 *
+	 * @message com.arjuna.mwlabs.wst.at.RegistrarWSImple_1
+	 *          [com.arjuna.mwlabs.wst.at.RegistrarWSImple_1] - Invalid type URI: < {0} ,
+	 *          {1} >
+	 */
+
+	/*
+	 * TODO
+	 *
+	 * See comment at head of class definition. We shouldn't have to rely on
+	 * thread-to-activity association to register a participant. We currently do
+	 * because the code is based on old WS-CAF models that are no longer
+	 * applicable. This needs updating!
+	 */
+	public W3CEndpointReference register(final W3CEndpointReference participantProtocolService,
+        final String protocolIdentifier, final InstanceIdentifierWS instanceIdentifier)
+			throws AlreadyRegisteredException, InvalidProtocolException,
+            InvalidStateException, NoActivityException
+	{
+		Object tx = _hierarchies.get(instanceIdentifier.getInstanceIdentifier());
+
+		if (tx instanceof SubordinateCoordinator)
+			return registerWithSubordinate((SubordinateCoordinator)tx, participantProtocolService, protocolIdentifier);
+
+		ActivityHierarchy hier = (ActivityHierarchy) tx;
+
+		if (hier == null)
+			throw new NoActivityException();
+
+		try
+		{
+			_coordManager.resume(hier);
+		}
+		catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+		{
+			throw new NoActivityException();
+		}
+		catch (SystemException ex)
+		{
+			throw new InvalidProtocolException();
+		}
+
+		// TODO check for AlreadyRegisteredException
+
+		if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC.equals(protocolIdentifier))
+		{
+			// enlist participant that wraps the requester URI.
+			final String participantId = "D" + new Uid().stringForm();
+
+			try
+			{
+                final Durable2PCStubWS participantStub = new Durable2PCStubWS(participantId, participantProtocolService) ;
+				_coordManager.enlistParticipant(new DurableTwoPhaseCommitParticipant(participantStub, participantId));
+
+				_coordManager.suspend();
+
+				return getCoordinator(participantId) ;
+			}
+			catch (Exception ex)
+			{
+				throw new InvalidStateException();
+			}
+		}
+		else if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC.equals(protocolIdentifier))
+		{
+			// enlist participant that wraps the requester URI.
+			final String participantId = "V" + new Uid().stringForm();
+
+			try
+			{
+                final Volatile2PCStubWS participantStub = new Volatile2PCStubWS(participantId, participantProtocolService) ;
+				_coordManager.enlistSynchronization(new VolatileTwoPhaseCommitParticipant(participantStub)) ;
+
+				_coordManager.suspend();
+
+				return getCoordinator(participantId) ;
+			}
+			catch (Exception ex)
+			{
+				throw new InvalidStateException();
+			}
+		}
+		else if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_COMPLETION.equals(protocolIdentifier))
+		{
+			try
+			{
+                final CompletionCoordinatorParticipantWS participant = new CompletionCoordinatorWSImple(_coordManager, hier, true, participantProtocolService) ;
+                CompletionCoordinatorProcessorWS.getProcessor().activateParticipant(participant, instanceIdentifier.getInstanceIdentifier()) ;
+
+				_coordManager.suspend();
+
+				return getCompletionCoordinator(instanceIdentifier) ;
+			}
+			catch (Exception ex)
+			{
+				ex.printStackTrace();
+
+				throw new InvalidStateException(ex.toString());
+			}
+		}
+		else
+		{
+			wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.RegistrarWSImple_1", new Object[]
+			{ AtomicTransactionWSConstants.WSAT_PROTOCOL, protocolIdentifier });
+
+			throw new InvalidProtocolException();
+		}
+	}
+
+    /**
+	 * Called when a registrar is removed from a register mapper. This method
+	 * will be called multiple times if the registrar is removed from multiple
+	 * register mappers or from the same register mapper with different protocol
+	 * identifiers.
+	 *
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+	public void uninstall(final String protocolIdentifier)
+	{
+	}
+
+	public final void associate () throws Exception
+	{
+		// TODO colocation won't do suspend
+
+		String txIdentifier = _coordManager.identifier().toString();
+		ActivityHierarchy hier = _coordManager.suspend();
+
+		_hierarchies.put(txIdentifier, hier);
+	}
+
+	public final void associate (ACCoordinator transaction) throws Exception
+	{
+		String txIdentifier = transaction.get_uid().stringForm();
+
+		_hierarchies.put(txIdentifier, transaction);
+	}
+
+	public final void disassociate (String txIdentifier) throws Exception
+	{
+		_hierarchies.remove(txIdentifier);
+	}
+
+	private final W3CEndpointReference registerWithSubordinate(final SubordinateCoordinator theTx,
+        final W3CEndpointReference participantProtocolService, final String protocolIdentifier)
+			throws AlreadyRegisteredException, InvalidProtocolException,
+			InvalidStateException, NoActivityException
+    {
+		if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC.equals(protocolIdentifier))
+		{
+			// enlist participant that wraps the requester URI.
+            final String participantId = "D" + new Uid().stringForm();
+
+            try
+            {
+                final Durable2PCStubWS participantStub = new Durable2PCStubWS(participantId, participantProtocolService) ;
+                theTx.enlistParticipant(new DurableTwoPhaseCommitParticipant(participantStub, participantId));
+
+                return getCoordinator(participantId) ;
+            }
+            catch (Exception ex)
+            {
+                throw new InvalidStateException();
+            }
+		}
+		else if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC.equals(protocolIdentifier))
+		{
+			// enlist participant that wraps the requester URI.
+            final String participantId = "V" + new Uid().stringForm();
+
+            try
+            {
+                final Volatile2PCStubWS participantStub = new Volatile2PCStubWS(participantId, participantProtocolService) ;
+                theTx.enlistSynchronization(new VolatileTwoPhaseCommitParticipant(participantStub)) ;
+
+                return getCoordinator(participantId) ;
+            }
+            catch (Exception ex)
+            {
+                throw new InvalidStateException();
+            }
+		}
+		else if (AtomicTransactionConstants.WSAT_SUB_PROTOCOL_COMPLETION.equals(protocolIdentifier))
+		{
+			// not allowed for subordinate transactions!
+
+			throw new InvalidStateException();
+		}
+		else
+		{
+			wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.RegistrarWSImple_1", new Object[]
+			{ AtomicTransactionWSConstants.WSAT_PROTOCOL, protocolIdentifier });
+
+			throw new InvalidProtocolException();
+		}
+	}
+
+    private W3CEndpointReference getCompletionCoordinator(final InstanceIdentifierWS instanceIdentifier)
+    {
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        String address = ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COMPLETION_COORDINATOR_SERVICE_NAME);
+        builder.serviceName(AtomicTransactionWSConstants.COMPLETION_COORDINATOR_SERVICE_QNAME);
+        builder.endpointName(AtomicTransactionWSConstants.COMPLETION_COORDINATOR_PORT_QNAME);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, instanceIdentifier);
+        return builder.build();
+    }
+
+    private W3CEndpointReference getCoordinator(final String participantId)
+    {
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        String address = ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COORDINATOR_SERVICE_NAME);
+        builder.serviceName(AtomicTransactionWSConstants.COORDINATOR_SERVICE_QNAME);
+        builder.endpointName(AtomicTransactionWSConstants.COORDINATOR_PORT_QNAME);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, participantId);
+        return builder.build();
+    }
+
+	private CoordinatorManager _coordManager = null;
+	private HashMap _hierarchies = new HashMap();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/ArjunaContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,260 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ArjunaContextImple.java,v 1.11.4.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.context;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.ContextManager;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.utils.DomUtil;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ACCoordinator;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import org.w3c.dom.Element;
+
+import javax.xml.parsers.DocumentBuilder;
+
+/**
+ * On demand this class creates the SOAP context information necessary to
+ * propagate the hierarchy of coordinators associated with the current thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ArjunaContextImple.java,v 1.11.4.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+public class ArjunaContextWSImple implements SOAPContext
+{
+
+	public ArjunaContextWSImple()
+	{
+		_context = null;
+	}
+
+	public ArjunaContextWSImple(ACCoordinator currentCoordinator)
+	{
+		_context = null;
+
+		initialiseContext(currentCoordinator);
+	}
+
+    /**
+     * Serialise the SOAP context into a DOM node.
+     * @param element The element to contain the serialisation.
+     * @return the element added.
+     */
+    public Element serialiseToElement(final Element element)
+    {
+        final Element context = context() ;
+        element.appendChild(context) ;
+        return context ;
+    }
+
+	public void initialiseContext(Object param)
+	{
+		try
+		{
+			ACCoordinator currentCoordinator = (ACCoordinator) param;
+
+			ActivityHierarchy hier = null;
+
+			try
+			{
+				hier = UserActivityFactory.userActivity().currentActivity();
+			}
+			catch (SystemException ex)
+			{
+				ex.printStackTrace();
+			}
+
+			if ((currentCoordinator != null) && (hier != null))
+			{
+				/*
+				 * Do the manditory stuff first.
+				 */
+
+				ActionHierarchy txHier = currentCoordinator.getHierarchy();
+                final int depth = txHier.depth() ;
+                _identifierValues = new String[depth] ;
+                _expiresValues = new int[depth] ;
+
+                _identifierValues[0] = txHier.getDeepestActionUid().stringForm() ;
+                _expiresValues[0] = hier.activity(hier.size()-1).getTimeout() ;
+
+				/*
+				 * Now let's do the optional stuff.
+				 */
+                for(int count = 1, index = 0 ; count < depth ; count++, index++)
+                {
+                    _identifierValues[count] = txHier.getActionUid(index).stringForm() ;
+                    _expiresValues[count] = hier.activity(index).getTimeout() ;
+                }
+			}
+		}
+		catch (ClassCastException ex)
+		{
+			throw new IllegalArgumentException();
+		}
+	}
+
+    /**
+     * @return the context document object.
+     */
+    private synchronized Element context()
+    {
+        // TODO - work out which bits of this we can do using JAXB
+        // TODO - sort out expires etc
+
+        if (_context == null)
+        {
+            DocumentBuilder builder = DomUtil.getDocumentBuilder();
+            org.w3c.dom.Document doc = builder.newDocument();
+
+            _context = doc.createElement("wscoor:" + _contextName);
+
+            _context.setAttribute("xmlns:wsu", _wsuNamespace);
+            _context.setAttribute("xmlns:wscoor", _wscoorNamespace);
+            _context.setAttribute("xmlns:arjuna", _arjunaNamespace);
+
+            if (_identifierValues != null)
+            {
+                /*
+                 * Do the manditory stuff first.
+                 */
+
+                Element identifier = doc.createElement("wsu:"+_identifier);
+                identifier.appendChild(doc.createTextNode(_identifierValues[0]));
+
+                _context.appendChild(identifier);
+
+                Element expires = doc.createElement("wsu:"+_expires);
+                expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[0])));
+
+                _context.appendChild(expires);
+
+                Element coordinationType = doc.createElement("wscoor:" + _coordinationType);
+                coordinationType.appendChild(doc.createTextNode(AtomicTransactionConstants.WSAT_PROTOCOL));
+
+                _context.appendChild(coordinationType);
+
+                /*
+                 * Now let's do the optional stuff.
+                 */
+                final int depth = _identifierValues.length ;
+                if (depth > 1)
+                {
+                    Element extensionRoot = doc.createElement("arjuna:"+_contextName);
+
+                    for(int count = 1 ; count < depth ; count++)
+                    {
+                        identifier = doc.createElement("arjuna:"+_identifier);
+                        identifier.appendChild(doc.createTextNode(_identifierValues[count]));
+
+                        extensionRoot.appendChild(identifier);
+
+                        expires = doc.createElement("arjuna:"+_expires);
+                        expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[count])));
+
+                        extensionRoot.appendChild(expires);
+                    }
+
+                    _context.appendChild(extensionRoot);
+                }
+            }
+        }
+
+        return _context ;
+    }
+
+	public String identifier ()
+	{
+		return ArjunaContextWSImple.class.getName();
+	}
+
+    public String getTransactionIdentifier()
+    {
+        return _identifierValues[0] ;
+    }
+
+    public int getTransactionExpires()
+    {
+        return _expiresValues[0] ;
+    }
+
+	public String toString ()
+	{
+		return DomUtil.nodeAsString(_context);
+	}
+
+    /**
+     * @message com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple_1 [com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple_1] - ignoring context: 
+     */
+    public static ArjunaContextWSImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(ArjunaContextWSImple.class.getName()))
+            {
+                if (contexts[i] instanceof ArjunaContextWSImple)
+                {
+                    return (ArjunaContextWSImple)contexts[i] ;
+                }
+                else
+                {
+                    wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple_1",
+                            new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+
+	private Element _context;
+    private String[] _identifierValues ;
+    private int[] _expiresValues ;
+
+	private static final String _wscoorNamespace = CoordinationConstantsWS.WSCOOR_NAMESPACE;
+	private static final String _wsuNamespace = "http://schemas.xmlsoap.org/ws/2002/07/utility";
+	private static final String _arjunaNamespace = "http://arjuna.com/schemas/wsc/2003/01/extension";
+	private static final String _contextName = CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT;
+	private static final String _identifier = CoordinationConstantsWS.WSCOOR_ELEMENT_IDENTIFIER;
+	private static final String _expires = CoordinationConstantsWS.WSCOOR_ELEMENT_EXPIRES;
+    private static final String _coordinationType = CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_TYPE;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/context/TxContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TxContextImple.java,v 1.8.4.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.context;
+
+import com.arjuna.mw.wsc.context.ContextWS;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mwlabs.wst.at.ContextWSImple;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TxContextImple.java,v 1.8.4.1 2005/11/22 10:36:15 kconner Exp $
+ */
+
+public class TxContextWSImple implements TxContext
+{
+
+	public TxContextWSImple(CoordinationContextType ctx)
+	{
+		_context = new ContextWSImple(ctx);
+	}
+
+	public TxContextWSImple(ContextWS context)
+	{
+		_context = context;
+	}
+
+	public boolean valid ()
+	{
+		return (_context != null) ;
+	}
+
+	public boolean equals (Object obj)
+	{
+		if (obj instanceof TxContextImple)
+		{
+			TxContextImple compare = (TxContextImple) obj;
+
+			return compare.context().equals(_context);
+		}
+		else
+			return false;
+	}
+
+	public final String identifier ()
+	{
+	    final String value = _context.getCoordinationContext().getIdentifier().getValue();
+	    if ((value != null) && value.startsWith("urn:"))
+        {
+            return value.substring(4) ;
+        }
+	    return value ;
+	}
+
+	public final ContextWS context ()
+	{
+		return _context;
+	}
+
+	public String toString ()
+	{
+		return _context.toString();
+	}
+
+	private ContextWS _context;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronizationWS.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronizationWS.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CleanupSynchronizationWS.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: CleanupSynchronization.java,v 1.3 2005/05/19 12:13:42 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.at.participants;
+
+import com.arjuna.mwlabs.wst.at.RegistrarWSImple;
+
+import com.arjuna.mw.wscf.model.twophase.participants.*;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: CleanupSynchronization.java,v 1.3 2005/05/19 12:13:42 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class CleanupSynchronizationWS implements Synchronization
+{
+
+	public CleanupSynchronizationWS(String cleanupId, RegistrarWSImple theRegistrar)
+	{
+		_cleanupId = cleanupId;
+		_theRegistrar = theRegistrar;
+	}
+
+	public void beforeCompletion () throws SystemException
+	{
+		// do nothing
+	}
+
+	public void afterCompletion (int status) throws SystemException
+	{
+		try
+		{
+			_theRegistrar.disassociate(_cleanupId);
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	private String _cleanupId;
+
+	private RegistrarWSImple _theRegistrar;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/CompletionCoordinatorWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,33 @@
+package com.arjuna.mwlabs.wst.at.participants;
+
+import com.arjuna.mw.wscf.model.twophase.api.CoordinatorManager;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: adinn
+ * Date: Oct 30, 2007
+ * Time: 2:37:26 PM
+ * To change this template use File | Settings | File Templates.
+ */
+
+/**
+ *
+ */
+public class CompletionCoordinatorWSImple extends CompletionCoordinatorImple implements com.arjuna.wst.CompletionCoordinatorParticipantWS
+{
+    private W3CEndpointReference participant;
+
+    public CompletionCoordinatorWSImple(CoordinatorManager cm, ActivityHierarchy hier, final boolean deactivate, W3CEndpointReference participant)
+    {
+        super(cm, hier, deactivate);
+        this.participant = participant;
+    }
+
+    public W3CEndpointReference getParticipant()
+    {
+        return participant;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/TransactionManagerWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,218 @@
+package com.arjuna.mwlabs.wst.at.remote;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.at.context.TxContextWSImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsat.AtomicTransactionConstants;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wsat.processors.ParticipantProcessorWS;
+import com.arjuna.wsc.*;
+import com.arjuna.wsc.messaging.MessageIdWS;
+import com.arjuna.wst.*;
+import com.arjuna.wst.messaging.engines.ParticipantEngineWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+/**
+ * This is the interface that the core exposes in order to allow different types
+ * of participants to be enrolled. The messaging layer continues to work in
+ * terms of the registrar, but internally we map to one of these methods.
+ */
+
+public class TransactionManagerWSImple extends TransactionManager
+{
+	public TransactionManagerWSImple()
+	{
+	}
+
+	public void enlistForDurableTwoPhase (Durable2PCParticipant tpp, String id)
+			throws WrongStateException, UnknownTransactionException,
+            AlreadyRegisteredException, SystemException
+    {
+		try
+		{
+			final W3CEndpointReference coordinator = registerParticipant(getParticipant(id) , AtomicTransactionConstants.WSAT_SUB_PROTOCOL_DURABLE_2PC);
+
+			ParticipantProcessorWS.getProcessor().activateParticipant(new ParticipantEngineWS(tpp, id, coordinator), id) ;
+		}
+		catch (com.arjuna.wsc.InvalidProtocolException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+		catch (com.arjuna.wsc.InvalidStateException ex)
+		{
+			throw new WrongStateException();
+		}
+		catch (com.arjuna.wsc.NoActivityException ex)
+		{
+			throw new UnknownTransactionException();
+		}
+	}
+
+	public void enlistForVolatileTwoPhase (Volatile2PCParticipant tpp, String id)
+			throws WrongStateException, UnknownTransactionException,
+			AlreadyRegisteredException, SystemException
+	{
+		try
+		{
+			final W3CEndpointReference coordinator = registerParticipant(getParticipant(id), AtomicTransactionConstants.WSAT_SUB_PROTOCOL_VOLATILE_2PC);
+
+			ParticipantProcessorWS.getProcessor().activateParticipant(new ParticipantEngineWS(tpp, id, coordinator), id) ;
+		}
+		catch (com.arjuna.wsc.InvalidProtocolException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+		catch (com.arjuna.wsc.InvalidStateException ex)
+		{
+			throw new WrongStateException();
+		}
+		catch (com.arjuna.wsc.NoActivityException ex)
+		{
+			ex.printStackTrace();
+
+			throw new UnknownTransactionException();
+		}
+	}
+
+	/*
+	 * TODO
+	 *
+	 * Have participant interfaces in WSTX have url method and services use
+	 * those. The ones in WS-T are message oriented and we translate to/from.
+	 *
+	 */
+
+	/**
+	 * @message com.arjuna.mwlabs.wst.at.remote.TransactionManagerWSImple_1
+	 *          [com.arjuna.mwlabs.wst.at.remote.TransactionManagerWSImple_1] -
+	 *          Not implemented!
+	 */
+
+	public int replay () throws SystemException
+	{
+		throw new SystemException(
+				wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.remote.TransactionManagerWSImple_1"));
+	}
+
+	public TxContext suspend () throws SystemException
+	{
+		return _ctxManager.suspend();
+	}
+
+	// resume overwrites. Should we check first a la JTA?
+
+	public void resume (TxContext tx) throws UnknownTransactionException,
+			SystemException
+	{
+		_ctxManager.resume(tx);
+	}
+
+	public TxContext currentTransaction () throws SystemException
+	{
+		return _ctxManager.currentTransaction();
+	}
+
+	protected W3CEndpointReference enlistForCompletion (final W3CEndpointReference participantEndpoint)
+			throws WrongStateException, UnknownTransactionException,
+			AlreadyRegisteredException, SystemException
+	{
+		try
+		{
+			TxContextWSImple currentTx = (TxContextWSImple) _ctxManager.currentTransaction();
+
+			if (currentTx == null)
+				throw new com.arjuna.wsc.NoActivityException();
+
+			return registerParticipant(participantEndpoint, AtomicTransactionConstants.WSAT_SUB_PROTOCOL_COMPLETION);
+		}
+		catch (com.arjuna.wsc.InvalidProtocolException ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+		catch (com.arjuna.wsc.InvalidStateException ex)
+		{
+			throw new WrongStateException();
+		}
+		catch (com.arjuna.wsc.NoActivityException ex)
+		{
+			throw new UnknownTransactionException();
+		}
+	}
+
+    private W3CEndpointReference getParticipant(final String id)
+    {
+        final QName serviceName = AtomicTransactionWSConstants.PARTICIPANT_SERVICE_QNAME;
+        final QName endpointName = AtomicTransactionWSConstants.PARTICIPANT_PORT_QNAME;
+        final String address = ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.PARTICIPANT_SERVICE_NAME);
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        builder.serviceName(serviceName);
+        builder.endpointName(endpointName);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, id);
+        return builder.build();
+    }
+
+	private final W3CEndpointReference registerParticipant (final W3CEndpointReference participant, final String protocol)
+			throws InvalidProtocolException, InvalidStateException, NoActivityException, SystemException
+	{
+		TxContextWSImple currentTx = null;
+
+		try
+		{
+			currentTx = (TxContextWSImple) _ctxManager.suspend();
+
+			if (currentTx == null)
+				throw new NoActivityException();
+
+            final CoordinationContextType coordinationContext = currentTx.context().getCoordinationContext() ;
+            final String messageId = MessageIdWS.getMessageId() ;
+
+            return RegistrationCoordinatorWS.register(coordinationContext, messageId, participant, protocol) ;
+        }
+		catch (final SoapFault sf)
+		{
+			throw new SystemException(sf.getMessage());
+		}
+		catch (final NoActivityException nae)
+		{
+			throw nae ;
+		}
+        catch (final InvalidStateException ise)
+        {
+            throw ise ;
+        }
+        catch (final InvalidProtocolException ipe)
+        {
+            throw ipe ;
+        }
+		catch (final Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+		finally
+		{
+			try
+			{
+				if (currentTx != null)
+					_ctxManager.resume(currentTx);
+			}
+			catch (Exception ex)
+			{
+				ex.printStackTrace();
+			}
+		}
+	}
+
+	private ContextManager _ctxManager = new ContextManager();
+
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/at/remote/UserTransactionWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,380 @@
+package com.arjuna.mwlabs.wst.at.remote;
+
+import com.arjuna.mw.wst.TransactionManager;
+import com.arjuna.mw.wst.UserTransaction;
+import com.arjuna.mw.wst.common.Environment;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.at.ContextWSImple;
+import com.arjuna.mwlabs.wst.at.context.TxContextWSImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsat.AtomicTransactionWSConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.ActivationCoordinatorWS;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.messaging.MessageIdWS;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.CompletionStubWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.util.Hashtable;
+
+/**
+ * @message com.arjuna.mwlabs.wst.at.remote.UserTransactionWSImple__2
+ *          [com.arjuna.mwlabs.wst.at.remote.UserTransactionWSImple__2] - Received
+ *          context is null!
+ */
+public class UserTransactionWSImple extends UserTransaction
+{
+
+	public UserTransactionWSImple()
+	{
+		try
+		{
+            _activationCoordinatorService = System.getProperty(Environment.COORDINATOR_URL);
+
+			/*
+			 * If the coordinator URL hasn't been specified via the
+			 * configuration file then assume we are using a locally registered
+			 * implementation.
+			 */
+
+			if (_activationCoordinatorService == null)
+			{
+                final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+                _activationCoordinatorService = serviceRegistry.getServiceURI(CoordinationConstantsWS.ACTIVATION_SERVICE_NAME) ;
+			}
+		}
+		catch (Exception ex)
+		{
+			// TODO
+
+			ex.printStackTrace();
+		}
+	}
+
+	public void begin () throws WrongStateException, SystemException
+    {
+		begin(0);
+	}
+
+	public void begin (int timeout) throws WrongStateException, SystemException
+	{
+		try
+		{
+			if (_ctxManager.currentTransaction() != null)
+				throw new WrongStateException();
+
+			com.arjuna.mw.wsc.context.ContextWS ctx = startTransaction(timeout);
+
+			_ctxManager.resume(new TxContextWSImple(ctx));
+
+			enlistCompletionParticipants();
+		}
+		catch (com.arjuna.wsc.InvalidCreateParametersException ex)
+		{
+			tidyup();
+
+			throw new SystemException(ex.toString());
+		}
+		catch (com.arjuna.wst.UnknownTransactionException ex)
+		{
+			tidyup();
+
+			throw new SystemException(ex.toString());
+		}
+		catch (SystemException ex)
+		{
+			tidyup();
+
+			throw ex;
+		}
+	}
+
+	public void commit () throws TransactionRolledBackException,
+            UnknownTransactionException, SecurityException, SystemException
+	{
+		try
+		{
+			commitWithoutAck();
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		finally
+		{
+			tidyup();
+		}
+	}
+
+	public void rollback () throws UnknownTransactionException, SecurityException, SystemException
+	{
+		try
+		{
+			abortWithoutAck();
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		finally
+		{
+			tidyup();
+		}
+	}
+
+	public String transactionIdentifier ()
+	{
+		try
+		{
+			return _ctxManager.currentTransaction().toString();
+		}
+		catch (SystemException ex)
+		{
+			return "Unknown";
+		}
+		catch (NullPointerException ex)
+		{
+			return "Unknown";
+		}
+	}
+
+	public String toString ()
+	{
+		return transactionIdentifier();
+	}
+
+	/*
+	 * Not sure if this is right as it doesn't map to registering a participant
+	 * with the coordinator.
+	 */
+
+	private final void enlistCompletionParticipants ()
+			throws WrongStateException, UnknownTransactionException,
+			SystemException
+	{
+		try
+		{
+			TransactionManagerWSImple tm = (TransactionManagerWSImple) TransactionManager.getTransactionManager();
+
+            final TxContextWSImple txContext = (TxContextWSImple) tm.currentTransaction();
+            final String id = txContext.identifier();
+            final W3CEndpointReference completionCoordinator = tm.enlistForCompletion(getCompletionParticipant(id));
+
+			_completionCoordinators.put(id, completionCoordinator);
+		}
+		catch (com.arjuna.wsc.AlreadyRegisteredException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+    private final com.arjuna.mw.wsc.context.ContextWS startTransaction(int timeout)
+			throws com.arjuna.wsc.InvalidCreateParametersException,
+			SystemException
+	{
+		try
+		{
+            // TODO: tricks for per app _activationCoordinatorService config, perhaps:
+            //InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/foo.properties");
+
+
+            final Long expires = (timeout > 0 ? new Long(timeout) : null) ;
+            final String messageId = MessageIdWS.getMessageId() ;
+            final CoordinationContextType coordinationContext = ActivationCoordinatorWS.createCoordinationContext(
+                    _activationCoordinatorService, messageId, AtomicTransactionWSConstants.WSAT_PROTOCOL, expires, null) ;
+            if (coordinationContext == null)
+            {
+                throw new SystemException(
+                    wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.at.remote.UserTransactionWSImple__2"));
+            }
+            return new ContextWSImple(coordinationContext) ;
+		}
+        catch (final InvalidCreateParametersException icpe)
+        {
+            throw icpe ;
+        }
+		catch (final SoapFault sf)
+		{
+			throw new SystemException(sf.getMessage()) ;
+		}
+		catch (final Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	private final void commitWithoutAck ()
+			throws TransactionRolledBackException, UnknownTransactionException,
+			SecurityException, SystemException
+	{
+		TxContextWSImple ctx = null;
+		String id = null;
+
+		try
+		{
+			ctx = (TxContextWSImple) _ctxManager.suspend();
+			id = ctx.identifier();
+
+			/*
+			 * By default the completionParticipantURL won't be set for an interposed (imported)
+			 * bridged transaction. This is fine, because you shouldn't be able to commit that
+			 * transaction from a node in the tree, only from the root. So, we can prevent commit
+			 * or rollback at this stage. The alternative would be to setup the completionParticipantURL
+			 * and throw the exception from the remote coordinator side (see enlistCompletionParticipants
+			 * for how to do this).
+			 */
+
+			final W3CEndpointReference completionCoordinator = (W3CEndpointReference) _completionCoordinators.get(id);
+
+			if (completionCoordinator == null)
+				throw new SecurityException();
+
+			CompletionStubWS completionStub = new CompletionStubWS(id, completionCoordinator);
+
+			completionStub.commit();
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (TransactionRolledBackException ex)
+		{
+			throw ex;
+		}
+		catch (UnknownTransactionException ex)
+		{
+			throw ex;
+		}
+		catch (SecurityException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+
+			throw new SystemException(ex.toString());
+		}
+		finally
+		{
+			try
+			{
+				if (ctx != null)
+					_ctxManager.resume(ctx);
+			}
+			catch (Exception ex)
+			{
+				ex.printStackTrace();
+			}
+
+			if (id != null)
+				_completionCoordinators.remove(id);
+		}
+	}
+
+	private final void abortWithoutAck () throws UnknownTransactionException, SecurityException,
+			SystemException
+	{
+		TxContextWSImple ctx = null;
+		String id = null;
+
+		try
+		{
+			ctx = (TxContextWSImple) _ctxManager.suspend();
+			id = ctx.identifier();
+
+			/*
+			 * By default the completionParticipantURL won't be set for an interposed (imported)
+			 * bridged transaction. This is fine, because you shouldn't be able to commit that
+			 * transaction from a node in the tree, only from the root. So, we can prevent commit
+			 * or rollback at this stage. The alternative would be to setup the completionParticipantURL
+			 * and throw the exception from the remote coordinator side (see enlistCompletionParticipants
+			 * for how to do this).
+			 */
+
+			W3CEndpointReference completionCoordinator = (W3CEndpointReference) _completionCoordinators.get(id);
+
+			if (completionCoordinator == null)
+				throw new SecurityException();
+
+			CompletionStubWS completionStub = new CompletionStubWS(id, completionCoordinator);
+
+			completionStub.rollback();
+		}
+		catch (SystemException ex)
+		{
+			throw ex;
+		}
+		catch (UnknownTransactionException ex)
+		{
+			throw ex;
+		}
+		catch (SecurityException ex)
+		{
+			throw ex;
+		}
+		catch (Exception ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+		finally
+		{
+			try
+			{
+				if (ctx != null)
+					_ctxManager.resume(ctx);
+			}
+			catch (Exception ex)
+			{
+				ex.printStackTrace();
+			}
+
+			if (id != null)
+				_completionCoordinators.remove(id);
+		}
+	}
+
+    /**
+     * Create an endpoint for the local participant service labelled with the current context id which can be passed
+     * to the registration service and handed on to the registered coordinator to call back to this transaction
+     * @param id the current transaction context identifier
+     * @return
+     */
+    private W3CEndpointReference getCompletionParticipant(final String id)
+    {
+        final QName serviceName = AtomicTransactionWSConstants.COMPLETION_INITIATOR_SERVICE_QNAME;
+        final QName endpointName = AtomicTransactionWSConstants.COMPLETION_INITIATOR_PORT_QNAME;
+        final String address = ServiceRegistryWS.getRegistry().getServiceURI(AtomicTransactionWSConstants.COMPLETION_INITIATOR_SERVICE_NAME);
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        builder.serviceName(serviceName);
+        builder.endpointName(endpointName);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, id);
+        return builder.build();
+    }
+
+	private final void tidyup ()
+	{
+		try
+		{
+			_ctxManager.suspend();
+		}
+		catch (Exception ex)
+		{
+			ex.printStackTrace();
+		}
+	}
+
+	private ContextManager _ctxManager = new ContextManager();
+	private String _activationCoordinatorService;
+	private Hashtable _completionCoordinators = new Hashtable();
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/BusinessActivityTerminatorWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,29 @@
+package com.arjuna.mwlabs.wst.ba;
+
+import com.arjuna.wst.BusinessActivityTerminatorWS;
+import com.arjuna.wst.SystemException;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * Local business activity terminator which can be used to close a business activity from the terminator
+ * side.
+ */
+public class BusinessActivityTerminatorWSImple
+        extends BusinessActivityTerminatorImple
+        implements BusinessActivityTerminatorWS
+{
+    public BusinessActivityTerminatorWSImple()
+            throws SystemException
+    {
+        super();
+    }
+
+    public W3CEndpointReference getTerminatorEndpoint()
+    {
+        // we need to implement this to satisfy the interaface used by TerminationCorodinatorProcessor
+        // but since it gets run on the termination coordinator side it doesn't actually need to return
+        // an endpoint and will never actually get called
+        return null;
+    }
+}

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextFactoryWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,216 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextFactoryImple.java,v 1.4.4.1 2005/11/22 10:36:14 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba;
+
+import com.arjuna.mw.wscf.model.sagas.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.ba.context.ArjunaContextImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessorWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.ContextFactoryWS;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.Expires;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+public class ContextFactoryWSImple implements ContextFactoryWS
+{
+
+    public ContextFactoryWSImple()
+    {
+        try
+        {
+            _coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+            _theRegistrar = new RegistrarWSImple();
+        }
+        catch (Exception ex)
+        {
+            ex.printStackTrace();
+        }
+    }
+
+    /**
+     * Called when a context factory is added to a context factory mapper. This method will be called multiple times
+     * if the context factory is added to multiple context factory mappers or to the same context mapper with different
+     * protocol identifiers.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     */
+
+    public void install (final String coordinationTypeURI)
+    {
+    }
+
+    // TODO interposition
+
+    /*
+     * If there is a context passed through to create then this newly created
+     * coordinator should be interposed.
+     */
+
+    /**
+     * Creates a coordination context.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     * @param expires the expire date/time for the returned context, can be null
+     * @param currentContext the current context, can be null
+     *
+     * @return the created coordination context
+     *
+     * @throws com.arjuna.wsc.InvalidCreateParametersException if a parameter passed is invalid
+     *         this activity identifier.
+     *
+     * @message com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_1 [com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_1] - Invalid type URI: < {0} , {1} >
+     * @message com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_3 [com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_3] - Invalid type URI:
+     */
+
+    public CoordinationContext create (final String coordinationTypeURI,
+            final Long expires, final CoordinationContextType currentContext)
+        throws InvalidCreateParametersException
+    {
+        if (BusinessActivityWSConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME.equals(coordinationTypeURI))
+    	{
+    	    try
+    	    {
+    		// make sure no transaction is currently associated
+
+    		_coordManager.suspend();
+
+    		final int timeout ;
+            if (expires == null)
+            {
+                timeout = 0 ;
+            }
+            else
+            {
+                final long longTimeout = expires.longValue() ;
+                timeout = (longTimeout > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int)longTimeout) ;
+            }
+
+    		_coordManager.begin(timeout);
+
+            final ArjunaContextImple arjunaContext = ArjunaContextImple.getContext() ;
+            final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+            final String registrationCoordinatorURI = serviceRegistry.getServiceURI(CoordinationConstantsWS.REGISTRATION_SERVICE_NAME) ;
+
+            final CoordinationContext coordinationContext = new CoordinationContext() ;
+            coordinationContext.setCoordinationType(coordinationTypeURI) ;
+            CoordinationContextType.Identifier identifier = new CoordinationContextType.Identifier();
+            identifier.setValue("urn:"+arjunaContext.getTransactionIdentifier());
+            final int transactionExpires = arjunaContext.getTransactionExpires() ;
+            if (transactionExpires > 0)
+            {
+                Expires expiresInstance = new Expires();
+                expiresInstance.setValue(transactionExpires);
+                coordinationContext.setExpires(expiresInstance);
+            }
+            final W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+            builder.serviceName(CoordinationConstantsWS.REGISTRATION_SERVICE_QNAME);
+            builder.endpointName(CoordinationConstantsWS.REGISTRATION_ENDPOINT_QNAME);
+            builder.address(registrationCoordinatorURI);
+            InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, arjunaContext.getTransactionIdentifier());
+            W3CEndpointReference registrationCoordinator = builder.build();
+            coordinationContext.setRegistrationService(registrationCoordinator) ;
+
+            TerminationCoordinatorProcessorWS.getProcessor().activateParticipant(new BusinessActivityTerminatorWSImple(), arjunaContext.getTransactionIdentifier()) ;
+
+    		_theRegistrar.associate();
+
+    		return coordinationContext;
+	    }
+	    catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+	    {
+		// TODO handle properly
+
+            ex.printStackTrace();
+	    }
+	    catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	    {
+		// TODO handle properly
+
+		ex.printStackTrace();
+	    }
+	    catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	    {
+		// TODO handle properly
+
+		ex.printStackTrace();
+	    }
+	    catch (Exception ex)
+	    {
+		// TODO handle properly
+
+		ex.printStackTrace();
+	    }
+	}
+	else
+	{
+	    wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_1",
+					  new Object[]{BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, coordinationTypeURI});
+
+	    throw new InvalidCreateParametersException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple_3")+" < "+BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME+", "+coordinationTypeURI+" >");
+	}
+
+	return null;
+    }
+
+    /**
+     * Called when a context factory is removed from a context factory mapper. This method will be called multiple
+     * times if the context factory is removed from multiple context factory mappers or from the same context factory
+     * mapper with different coordination type uris.
+     *
+     * @param coordinationTypeURI the coordination type uri
+     */
+
+    public void uninstall (String coordinationTypeURI)
+    {
+	// we don't use this as one implementation is registered per type
+    }
+
+    public final RegistrarWSImple registrar ()
+    {
+        return _theRegistrar;
+    }
+
+    private CoordinatorManager                   _coordManager;
+    private RegistrarWSImple                       _theRegistrar;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/ContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ContextImple.java,v 1.3.6.1 2005/11/22 10:36:14 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba;
+
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+
+public class ContextWSImple implements com.arjuna.mw.wsc.context.ContextWS
+{
+    public ContextWSImple(CoordinationContextType ctx)
+    {
+        _coordContext = ctx;
+    }
+
+    public boolean equals (Object obj)
+    {
+        if (obj instanceof ContextImple)
+        {
+    	    ContextWSImple ci = (ContextWSImple) obj;
+
+            return ci.getCoordinationContext().getIdentifier().getValue().equals(_coordContext.getIdentifier().getValue());
+        }
+        else
+            return false;
+    }
+
+    public CoordinationContextType getCoordinationContext ()
+    {
+    	return _coordContext;
+    }
+
+    public void setCoordinationContext (CoordinationContextType cc)
+    {
+    	_coordContext = cc;
+    }
+
+    public String toString ()
+    {
+    	return "BusinessActivityIdentifier: "+_coordContext.getIdentifier().getValue();
+    }
+
+    private CoordinationContextType _coordContext;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/RegistrarWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,268 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002, 2003, 2004,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: RegistrarImple.java,v 1.7.4.1 2005/11/22 10:36:14 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.exceptions.ProtocolNotRegisteredException;
+import com.arjuna.mw.wscf.model.sagas.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.ba.participants.BusinessAgreementWithCoordinatorCompletionWSImple;
+import com.arjuna.mwlabs.wst.ba.participants.BusinessAgreementWithParticipantCompletionWSImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.wsc.*;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionCoordinatorEngineWS;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionCoordinatorEngineWS;
+import com.arjuna.wst.stub.BusinessAgreementWithCoordinatorCompletionStubWS;
+import com.arjuna.wst.stub.BusinessAgreementWithParticipantCompletionStubWS;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+import java.util.HashMap;
+
+public class RegistrarWSImple implements RegistrarWS
+{
+
+	public RegistrarWSImple() throws ProtocolNotRegisteredException,
+			SystemException
+	{
+		_coordManager = CoordinatorManagerFactory.coordinatorManager();
+
+		// register with mapper using tx id as protocol identifier.
+		final RegistrarMapperWS mapper = RegistrarMapperWS.getFactory();
+
+		mapper.addRegistrar(
+			BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION, this);
+		mapper.addRegistrar(
+			BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION, this);
+		// mapper.addRegistrar(ArjunaTXConstants.WSARJTX_PROTOCOL_TERMINATION, this);
+	}
+
+	/**
+	 * Called when a registrar is added to a register mapper. This method will
+	 * be called multiple times if the registrar is added to multiple register
+	 * mappers or to the same register mapper with different protocol
+	 * identifiers.
+	 *
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void install (String protocolIdentifier)
+	{
+	}
+
+	/**
+	 * Registers the interest of participant in a particular protocol.
+	 *
+	 * @param participantProtocolService
+	 *            the address of the participant protocol service
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 *
+	 * @return the PortReference of the coordinator protocol service
+	 *
+	 * @throws com.arjuna.wsc.AlreadyRegisteredException
+	 *             if the participant is already registered for this
+	 *             coordination protocol under this activity identifier
+	 * @throws com.arjuna.wsc.InvalidProtocolException
+	 *             if the coordination protocol is not supported
+	 * @throws com.arjuna.wsc.InvalidStateException
+	 *             if the state of the coordinator no longer allows registration
+	 *             for this coordination protocol
+	 * @throws com.arjuna.wsc.NoActivityException
+	 *             if the activity does not exist.
+	 *
+	 * @message com.arjuna.mwlabs.wst.ba.RegistrarWSImple_1
+	 *          [com.arjuna.mwlabs.wst.ba.RegistrarWSImple_1] - Invalid type URI: < {0} , {1} >
+	 */
+
+	public W3CEndpointReference register (
+			final W3CEndpointReference participantProtocolService,
+			final String protocolIdentifier,
+			final InstanceIdentifierWS instanceIdentifier)
+			throws AlreadyRegisteredException, InvalidProtocolException,
+			InvalidStateException, NoActivityException
+	{
+		ActivityHierarchy hier = (ActivityHierarchy) _hierarchies
+				.get(instanceIdentifier.getInstanceIdentifier());
+
+		if (hier == null) throw new NoActivityException();
+
+		try
+		{
+			_coordManager.resume(hier);
+		}
+		catch (com.arjuna.mw.wsas.exceptions.InvalidActivityException ex)
+		{
+			throw new NoActivityException();
+		}
+		catch (SystemException ex)
+		{
+			throw new InvalidProtocolException();
+		}
+
+		// TODO check for AlreadyRegisteredException
+
+		if (BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION
+				.equals(protocolIdentifier))
+		{
+			// enlist participant that wraps the requester URI.
+			final String id = new Uid().stringForm();
+
+			try
+			{
+                final ParticipantCompletionCoordinatorEngineWS engine = new ParticipantCompletionCoordinatorEngineWS(id, participantProtocolService) ;
+				BusinessAgreementWithParticipantCompletionWSImple participant = new BusinessAgreementWithParticipantCompletionWSImple(
+						new BusinessAgreementWithParticipantCompletionStubWS(engine), id);
+                engine.setCoordinator(participant.participantManager()) ;
+
+				_coordManager.enlistParticipant(participant);
+
+				_coordManager.suspend();
+
+				return getParticipantManager(
+                        BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_QNAME,
+                        BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_PORT_QNAME,
+                        ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME),
+						id);
+			}
+			catch (Exception ex)
+			{
+				throw new InvalidStateException();
+			}
+		}
+		else
+			if (BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION
+					.equals(protocolIdentifier))
+			{
+				final String id = new Uid().stringForm();
+				try
+				{
+                    final CoordinatorCompletionCoordinatorEngineWS engine = new CoordinatorCompletionCoordinatorEngineWS(id, participantProtocolService) ;
+					BusinessAgreementWithCoordinatorCompletionWSImple participant = new BusinessAgreementWithCoordinatorCompletionWSImple(
+							new BusinessAgreementWithCoordinatorCompletionStubWS(engine), id);
+                    engine.setCoordinator(participant.participantManager()) ;
+
+					_coordManager.enlistParticipant(participant);
+
+					_coordManager.suspend();
+
+					return getParticipantManager(
+                            BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_QNAME,
+							BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_PORT_QNAME,
+                            ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME),
+							id);
+				}
+				catch (Exception ex)
+				{
+					throw new InvalidStateException();
+				}
+			}
+			else
+				if (ArjunaTXConstants.WSARJTX_PROTOCOL_TERMINATION.equals(protocolIdentifier))
+				{
+					try
+					{
+						return getParticipantManager(
+                                ArjunaTXWSConstants.TERMINATION_COORDINATOR_SERVICE_QNAME,
+								ArjunaTXWSConstants.TERMINATION_COORDINATOR_PORT_QNAME,
+                                ServiceRegistryWS.getRegistry().getServiceURI(ArjunaTXWSConstants.TERMINATION_COORDINATOR_SERVICE_NAME),
+                                instanceIdentifier.getInstanceIdentifier());
+					}
+					catch (Exception ex)
+					{
+						throw new InvalidStateException();
+					}
+				}
+				else
+				{
+					wstxLogger.arjLoggerI18N
+							.warn(
+									"com.arjuna.mwlabs.wst.ba.RegistrarWSImple_1",
+									new Object[] { BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, protocolIdentifier });
+
+					throw new InvalidProtocolException();
+				}
+	}
+
+	/**
+	 * Called when a registrar is removed from a register mapper. This method
+	 * will be called multiple times if the registrar is removed from multiple
+	 * register mappers or from the same register mapper with different protocol
+	 * identifiers.
+	 *
+	 * @param protocolIdentifier
+	 *            the protocol identifier
+	 */
+
+	public void uninstall (String protocolIdentifier)
+	{
+	}
+
+	public final void associate () throws Exception
+	{
+		// TODO colocation won't do suspend
+
+		String txIdentifier = _coordManager.identifier().toString();
+		ActivityHierarchy hier = _coordManager.suspend();
+
+		_hierarchies.put(txIdentifier, hier);
+	}
+
+	public final void disassociate (String txIdentifier) throws Exception
+	{
+		_hierarchies.remove(txIdentifier);
+	}
+
+	private W3CEndpointReference getParticipantManager (final QName serviceName, final QName endpointName, final String address, final String id)
+	{
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        builder.serviceName(serviceName);
+        builder.endpointName(endpointName);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, id);
+        return builder.build();
+	}
+
+	private CoordinatorManager _coordManager = null;
+
+	private HashMap _hierarchies = new HashMap();
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/ArjunaContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,262 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: ArjunaContextImple.java,v 1.6.6.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.context;
+
+import javax.xml.parsers.DocumentBuilder;
+
+import org.w3c.dom.Element;
+
+import com.arjuna.ats.arjuna.coordinator.ActionHierarchy;
+import com.arjuna.mw.wsas.UserActivityFactory;
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.context.Context;
+import com.arjuna.mw.wsas.context.ContextManager;
+import com.arjuna.mw.wsas.context.soap.SOAPContext;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wscf.utils.DomUtil;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wscf.model.sagas.arjunacore.ACCoordinator;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+
+/**
+ * On demand this class creates the SOAP context information necessary to
+ * propagate the hierarchy of coordinators associated with the current
+ * thread.
+ *
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: ArjunaContextImple.java,v 1.6.6.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+public class ArjunaContextWSImple implements SOAPContext
+{
+
+    public ArjunaContextWSImple()
+    {
+        _context = null;
+    }
+
+    public ArjunaContextWSImple(ACCoordinator currentCoordinator)
+    {
+    	_context = null;
+
+    	initialiseContext(currentCoordinator);
+    }
+
+    /**
+     * Serialise the SOAP context into a DOM node.
+     * @param element The element to contain the serialisation.
+     * @return the element added.
+     */
+    public Element serialiseToElement(final Element element)
+    {
+        final Element context = context() ;
+        element.appendChild(context) ;
+        return context ;
+    }
+
+    public void initialiseContext(Object param)
+    {
+    	try
+    	{
+    	    ACCoordinator currentCoordinator = (ACCoordinator) param;
+
+    	    ActivityHierarchy hier = null;
+
+    	    try
+    	    {
+    	        hier = UserActivityFactory.userActivity().currentActivity();
+    	    }
+    	    catch (SystemException ex)
+    	    {
+    	        ex.printStackTrace();
+    	    }
+
+    	    if ((currentCoordinator != null) && (hier != null))
+    	    {
+        		/*
+        		 * Do the manditory stuff first.
+        		 */
+
+        		ActionHierarchy txHier = currentCoordinator.getHierarchy();
+                final int depth = txHier.depth() ;
+                _identifierValues = new String[depth] ;
+                _expiresValues = new int[depth] ;
+
+                _identifierValues[0] = txHier.getDeepestActionUid().stringForm() ;
+                _expiresValues[0] = hier.activity(hier.size()-1).getTimeout() ;
+
+        		/*
+        		 * Now let's do the optional stuff.
+        		 */
+                for(int count = 1, index = 0 ; count < depth ; count++, index++)
+                {
+                    _identifierValues[count] = txHier.getActionUid(index).stringForm() ;
+                    _expiresValues[count] = hier.activity(index).getTimeout() ;
+                }
+            }
+    	}
+    	catch (ClassCastException ex)
+    	{
+    	    throw new IllegalArgumentException();
+    	}
+    }
+
+    /**
+     * @return the context document object.
+     */
+    private synchronized Element context()
+    {
+        // TODO - work out which bits of this we can do using JAXB
+        // TODO - sort out expires etc
+
+        if (_context == null)
+        {
+            DocumentBuilder builder = DomUtil.getDocumentBuilder();
+            org.w3c.dom.Document doc = builder.newDocument();
+
+            _context = doc.createElement("wscoor:"+_contextName);
+
+            _context.setAttribute("xmlns:wsu", _wsuNamespace);
+            _context.setAttribute("xmlns:wscoor", _wscoorNamespace);
+            _context.setAttribute("xmlns:arjuna", _arjunaNamespace);
+
+            if (_identifierValues != null)
+            {
+                /*
+                 * Do the manditory stuff first.
+                 */
+
+                Element identifier = doc.createElement("wsu:"+_identifier);
+                identifier.appendChild(doc.createTextNode(_identifierValues[0]));
+
+                _context.appendChild(identifier);
+
+                Element expires = doc.createElement("wsu:"+_expires);
+                expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[0])));
+
+                _context.appendChild(expires);
+
+                Element coordinationType = doc.createElement("wscoor:" + _coordinationType);
+                coordinationType.appendChild(doc.createTextNode(BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME));
+
+                _context.appendChild(coordinationType);
+
+                /*
+                 * Now let's do the optional stuff.
+                 */
+                final int depth = _identifierValues.length ;
+                if (depth > 1)
+                {
+                    Element extensionRoot = doc.createElement("arjuna:"+_contextName);
+
+                    for(int count = 1; count < depth ; count++)
+                    {
+                        identifier = doc.createElement("arjuna:"+_identifier);
+                        identifier.appendChild(doc.createTextNode(_identifierValues[count]));
+
+                        extensionRoot.appendChild(identifier);
+
+                        expires = doc.createElement("arjuna:"+_expires);
+                        expires.appendChild(doc.createTextNode(Integer.toString(_expiresValues[count])));
+
+                        extensionRoot.appendChild(expires);
+                    }
+
+                    _context.appendChild(extensionRoot);
+                }
+            }
+        }
+        return _context ;
+    }
+
+    public String identifier ()
+    {
+        return ArjunaContextWSImple.class.getName();
+    }
+
+    public String getTransactionIdentifier()
+    {
+        return _identifierValues[0] ;
+    }
+
+    public int getTransactionExpires()
+    {
+        return _expiresValues[0] ;
+    }
+
+    public String toString ()
+    {
+        return DomUtil.nodeAsString(_context);
+    }
+
+    /**
+     * @message com.arjuna.mwlabs.wst.ba.context.ArjunaContextWSImple_1 [com.arjuna.mwlabs.wst.ba.context.ArjunaContextWSImple_1] - ignoring context:
+     */
+    public static ArjunaContextWSImple getContext()
+    {
+        ContextManager cxman = new ContextManager();
+        Context[] contexts = cxman.contexts();
+
+        for (int i = 0; i < contexts.length; i++)
+        {
+            if (contexts[i].identifier().equals(ArjunaContextWSImple.class.getName()))
+            {
+                if (contexts[i] instanceof ArjunaContextWSImple)
+                {
+                    return (ArjunaContextWSImple)contexts[i] ;
+                }
+                else
+                {
+                    wstxLogger.arjLoggerI18N.warn("com.arjuna.mwlabs.wst.ba.context.ArjunaContextWSImple_1",
+                            new Object[]{contexts[i]});
+                }
+                break;
+            }
+        }
+        return null ;
+    }
+
+    private Element _context;
+    private String[] _identifierValues ;
+    private int[] _expiresValues ;
+
+    private static final String _wscoorNamespace = CoordinationConstantsWS.WSCOOR_NAMESPACE;
+    private static final String _wsuNamespace = "http://schemas.xmlsoap.org/ws/2002/07/utility";
+    private static final String _arjunaNamespace = "http://arjuna.com/schemas/wsc/2003/01/extension";
+
+    private static final String _contextName = CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_CONTEXT;
+    private static final String _identifier = CoordinationConstantsWS.WSCOOR_ELEMENT_IDENTIFIER;
+    private static final String _expires = CoordinationConstantsWS.WSCOOR_ELEMENT_EXPIRES;
+    private static final String _coordinationType = CoordinationConstantsWS.WSCOOR_ELEMENT_COORDINATION_TYPE;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/context/TxContextWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: TxContextImple.java,v 1.2.20.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.context;
+
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mwlabs.wst.ba.ContextWSImple;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: TxContextImple.java,v 1.2.20.1 2005/11/22 10:36:16 kconner Exp $
+ */
+
+public class TxContextWSImple implements TxContext
+{
+
+    public TxContextWSImple(CoordinationContextType ctx)
+    {
+        _context = new ContextWSImple(ctx);
+    }
+
+    public TxContextWSImple(com.arjuna.mw.wsc.context.ContextWS context)
+    {
+        _context = context;
+    }
+
+    public boolean valid ()
+    {
+    	return (_context != null) ;
+    }
+
+    public boolean equals (Object obj)
+    {
+    	if (obj instanceof TxContextWSImple)
+    	{
+    	    TxContextWSImple compare = (TxContextWSImple) obj;
+
+    	    return compare.context().equals(_context);
+    	}
+    	else
+    	    return false;
+    }
+
+    public final String identifier ()
+    {
+        final String value = _context.getCoordinationContext().getIdentifier().getValue();
+        if ((value != null) && value.startsWith("urn:"))
+        {
+            return value.substring(4) ;
+        }
+        return value ;
+    }
+
+    public final com.arjuna.mw.wsc.context.ContextWS context ()
+    {
+        return _context;
+    }
+
+    public String toString ()
+    {
+        return _context.toString();
+    }
+
+    private com.arjuna.mw.wsc.context.ContextWS _context;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithCoordinatorCompletionWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessAgreementWithCoordinatorCompletionImple.java,v 1.1.2.2 2004/08/09 12:34:26 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.participants;
+
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wscf.exceptions.InvalidParticipantException;
+import com.arjuna.wst.BusinessAgreementWithCoordinatorCompletionParticipant;
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BusinessAgreementWithCoordinatorCompletionImple.java,v 1.1.2.2
+ *          2004/08/09 12:34:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BusinessAgreementWithCoordinatorCompletionWSImple extends
+		BusinessAgreementWithParticipantCompletionWSImple implements
+		com.arjuna.mw.wscf.model.sagas.participants.ParticipantWithComplete
+{
+
+	public BusinessAgreementWithCoordinatorCompletionWSImple(
+			BusinessAgreementWithCoordinatorCompletionParticipant participant,
+			String identifier)
+	{
+		super(participant, identifier);
+	}
+
+	public void complete () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		if (_resource != null)
+		{
+			try
+			{
+				((BusinessAgreementWithCoordinatorCompletionParticipant) _resource)
+						.complete();
+			}
+			catch (com.arjuna.wst.WrongStateException ex)
+			{
+				throw new WrongStateException(ex.toString());
+			}
+			catch (com.arjuna.wst.SystemException ex)
+			{
+				throw new SystemException(ex.toString());
+			}
+		}
+		else
+			throw new InvalidParticipantException();
+	}
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/participants/BusinessAgreementWithParticipantCompletionWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,228 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessAgreementWithParticipantCompletionImple.java,v 1.1.2.2 2004/08/09 12:34:26 nmcl Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.participants;
+
+// import com.arjuna.mw.wst.resources.BusinessAgreement;
+
+import com.arjuna.ats.arjuna.state.InputObjectState;
+import com.arjuna.ats.arjuna.state.OutputObjectState;
+import com.arjuna.mw.wsas.exceptions.SystemException;
+import com.arjuna.mw.wsas.exceptions.WrongStateException;
+import com.arjuna.mw.wscf.exceptions.InvalidParticipantException;
+import com.arjuna.mw.wscf.model.sagas.exceptions.CompensateFailedException;
+import com.arjuna.mwlabs.wst.util.PersistableParticipantHelper;
+import com.arjuna.wst.BusinessAgreementWithParticipantCompletionParticipant;
+
+// TODO crash recovery (for EVERYTHING!!)
+
+// TODO re-architect!!
+
+/**
+ * @author Mark Little (mark.little at arjuna.com)
+ * @version $Id: BusinessAgreementWithParticipantCompletionWSImple.java,v 1.1.2.2
+ *          2004/08/09 12:34:26 nmcl Exp $
+ * @since 1.0.
+ */
+
+public class BusinessAgreementWithParticipantCompletionWSImple implements
+		com.arjuna.mw.wscf.model.sagas.participants.Participant
+{
+//
+	public BusinessAgreementWithParticipantCompletionWSImple(
+			BusinessAgreementWithParticipantCompletionParticipant resource,
+			String id)
+	{
+		_resource = resource;
+		_identifier = id;
+		_baParticipantManager = new com.arjuna.mwlabs.wst.ba.remote.BAParticipantManagerWSImple(id);
+	}
+
+	public void close () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				_resource.close();
+			}
+			else
+				throw new InvalidParticipantException();
+		}
+		catch (com.arjuna.wst.WrongStateException ex)
+		{
+			throw new WrongStateException(ex.toString());
+		}
+		catch (com.arjuna.wst.SystemException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	public void cancel () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				_resource.cancel();
+			}
+			else
+				throw new InvalidParticipantException();
+		}
+		catch (com.arjuna.wst.WrongStateException ex)
+		{
+			throw new WrongStateException(ex.toString());
+		}
+		catch (com.arjuna.wst.SystemException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	public void compensate () throws CompensateFailedException,
+			InvalidParticipantException, WrongStateException, SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				_resource.compensate();
+			}
+			else
+				throw new InvalidParticipantException();
+		}
+		catch (com.arjuna.wst.FaultedException ex)
+		{
+			throw new CompensateFailedException();
+		}
+		catch (com.arjuna.wst.WrongStateException ex)
+		{
+			throw new WrongStateException(ex.toString());
+		}
+		catch (com.arjuna.wst.SystemException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	/**
+	 * @return the status value.
+	 */
+
+	public String status () throws SystemException
+	{
+		try
+		{
+			if (_resource != null)
+			{
+				return _resource.status();
+			}
+			else
+				throw new SystemException("InvalidParticipant");
+		}
+		catch (com.arjuna.wst.SystemException ex)
+		{
+			throw new SystemException(ex.toString());
+		}
+	}
+
+	/**
+	 * Inform the participant that is can forget the heuristic result.
+	 *
+	 * @exception com.arjuna.mw.wscf.exceptions.InvalidParticipantException
+	 *                Thrown if the participant identity is invalid.
+	 * @exception com.arjuna.mw.wsas.exceptions.WrongStateException
+	 *                Thrown if the participant is in an invalid state.
+	 * @exception com.arjuna.mw.wsas.exceptions.SystemException
+	 *                Thrown in the event of a general fault.
+	 */
+
+	public void forget () throws InvalidParticipantException,
+			WrongStateException, SystemException
+	{
+		// not supported by the IBM protocol.
+	}
+
+	public void unknown () throws SystemException
+	{
+		/*
+		 * If the transaction is unknown, then we assume it cancelled.
+		 */
+
+		try
+		{
+			cancel();
+		}
+		catch (Exception ex)
+		{
+			// TODO
+		}
+	}
+
+	public String id () throws SystemException
+	{
+		return _identifier;
+	}
+
+	public final com.arjuna.wst.BAParticipantManagerWS participantManager ()
+	{
+		return _baParticipantManager;
+	}
+
+	public boolean save_state (OutputObjectState os)
+	{
+        return PersistableParticipantHelper.save_state(os, _resource) ;
+	}
+
+	public boolean restore_state (InputObjectState is)
+	{
+        final Object resource = PersistableParticipantHelper.restore_state(is) ;
+        if (resource != null)
+        {
+            _resource = (BusinessAgreementWithParticipantCompletionParticipant)resource ;
+            return true ;
+        }
+        else
+        {
+            return false ;
+        }
+	}
+
+	protected BusinessAgreementWithParticipantCompletionParticipant _resource;
+
+	private String _identifier = null;
+
+	private com.arjuna.wst.BAParticipantManagerWS _baParticipantManager = null;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BAParticipantManagerWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BAParticipantManagerImple.java,v 1.5.6.1 2005/11/22 10:36:08 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.remote;
+
+import com.arjuna.mw.wsas.activity.ActivityHierarchy;
+import com.arjuna.mw.wsas.exceptions.InvalidActivityException;
+import com.arjuna.mw.wscf.model.sagas.CoordinatorManagerFactory;
+import com.arjuna.mw.wscf.model.sagas.api.CoordinatorManager;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+
+import javax.xml.namespace.QName;
+
+/**
+ * This is the interface that the core exposes in order to allow different
+ * types of participants to be enrolled. The messaging layer continues to
+ * work in terms of the registrar, but internally we map to one of these
+ * methods.
+ *
+ * This could also be the interface that high-level users see (e.g., at the
+ * application Web Service).
+ */
+
+public class BAParticipantManagerWSImple implements com.arjuna.wst.BAParticipantManagerWS
+{
+
+    public BAParticipantManagerWSImple(String participantId)
+    {
+	try
+	{
+	    _coordManager = CoordinatorManagerFactory.coordinatorManager();
+	    _hier = _coordManager.currentActivity();
+	    _participantId = participantId;
+	}
+	catch (Exception ex)
+	{
+	    ex.printStackTrace();
+	}
+    }
+
+    public void exit () throws WrongStateException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier == null)
+		throw new UnknownTransactionException();
+
+	    _coordManager.resume(_hier);
+
+	    _coordManager.delistParticipant(_participantId);
+
+	    _coordManager.suspend();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.InvalidParticipantException ex)
+	{
+	    throw new SystemException("UnknownParticipantException");
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new WrongStateException();
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void completed () throws WrongStateException, UnknownTransactionException, SystemException
+    {
+	try
+	{
+	    if (_hier == null)
+		throw new UnknownTransactionException();
+
+	    _coordManager.resume(_hier);
+
+	    _coordManager.participantCompleted(_participantId);
+
+	    _coordManager.suspend();
+	}
+    	catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wscf.exceptions.InvalidParticipantException ex)
+	{
+	    throw new SystemException("UnknownParticipantException");
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new WrongStateException();
+	}
+	catch (InvalidActivityException ex)
+	{
+	    throw new UnknownTransactionException();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void fail (final QName exceptionIdentifier) throws SystemException
+    {
+	try
+	{
+        if (_hier == null)
+            throw new UnknownTransactionException();
+
+            _coordManager.resume(_hier);
+
+        // fail means faulted as far as the coordinator manager is concerned
+            _coordManager.participantFaulted(_participantId);
+
+            _coordManager.suspend();
+	}
+    catch (final InvalidActivityException iae)
+    {
+        throw new SystemException("UnknownTransactionException");
+    }
+    catch (final UnknownTransactionException ute)
+    {
+        throw new SystemException("UnknownTransactionException");
+    }
+	catch (com.arjuna.mw.wscf.exceptions.InvalidParticipantException ex)
+	{
+	    throw new SystemException("UnknownParticipantException");
+	}
+    	catch (com.arjuna.mw.wsas.exceptions.NoActivityException ex)
+	{
+	    throw new SystemException("UnknownTransactionException");
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    public void cannotComplete () throws WrongStateException, UnknownTransactionException, SystemException
+    {
+        exit();
+    }
+
+    public void error () throws SystemException
+    {
+	try
+	{
+	    _coordManager.setCancelOnly();
+	}
+	catch (com.arjuna.mw.wsas.exceptions.WrongStateException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+	catch (com.arjuna.mw.wsas.exceptions.SystemException ex)
+	{
+	    throw new SystemException(ex.toString());
+	}
+    }
+
+    private CoordinatorManager _coordManager = null;
+    private ActivityHierarchy  _hier = null;
+    private String             _participantId = null;
+
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/BusinessActivityManagerWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,214 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: BusinessActivityManagerImple.java,v 1.7.4.1 2005/11/22 10:36:08 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.remote;
+
+import com.arjuna.mw.wst.BusinessActivityManagerWS;
+import com.arjuna.mw.wst.TxContext;
+import com.arjuna.mwlabs.wst.ba.context.TxContextWSImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wsba.BusinessActivityWSConstants;
+import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessorWS;
+import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessorWS;
+import com.arjuna.wsc.AlreadyRegisteredException;
+import com.arjuna.wsc.RegistrationCoordinatorWS;
+import com.arjuna.wsc.messaging.MessageIdWS;
+import com.arjuna.wst.*;
+import com.arjuna.wst.messaging.engines.CoordinatorCompletionParticipantEngineWS;
+import com.arjuna.wst.messaging.engines.ParticipantCompletionParticipantEngineWS;
+import com.arjuna.wst.stub.BACoordinatorCompletionParticipantManagerStubWS;
+import com.arjuna.wst.stub.BAParticipantCompletionParticipantManagerStubWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+/**
+ * This is the interface that the core exposes in order to allow different
+ * types of participants to be enrolled. The messaging layer continues to
+ * work in terms of the registrar, but internally we map to one of these
+ * methods.
+ */
+
+public class BusinessActivityManagerWSImple extends BusinessActivityManagerWS
+{
+    public BusinessActivityManagerWSImple()
+    {
+    }
+
+    public BAParticipantManagerWS enlistForBusinessAgreementWithParticipantCompletion (BusinessAgreementWithParticipantCompletionParticipant bap, String id)
+        throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+        final QName service = BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_QNAME;
+        final QName endpoint = BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_PORT_QNAME;
+        final String address = ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME);
+        final W3CEndpointReference participant = getParticipant(service, endpoint, address, id) ;
+    	try
+    	{
+            W3CEndpointReference baPMEndpoint = registerParticipant(participant, BusinessActivityConstants.WSBA_SUB_PROTOCOL_PARTICIPANT_COMPLETION);
+            final ParticipantCompletionParticipantEngineWS engine = new ParticipantCompletionParticipantEngineWS(id, baPMEndpoint, bap) ;
+            ParticipantCompletionParticipantProcessorWS.getProcessor().activateParticipant(engine, id) ;
+
+            return new BAParticipantCompletionParticipantManagerStubWS(engine);
+    	}
+    	catch (com.arjuna.wsc.InvalidProtocolException ex)
+    	{
+    	    throw new SystemException(ex.toString());
+    	}
+    	catch (com.arjuna.wsc.InvalidStateException ex)
+    	{
+    	    throw new WrongStateException();
+    	}
+    	catch (com.arjuna.wsc.NoActivityException ex)
+    	{
+    	    throw new UnknownTransactionException();
+    	}
+    	catch (Throwable ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    }
+
+    public BAParticipantManagerWS enlistForBusinessAgreementWithCoordinatorCompletion (BusinessAgreementWithCoordinatorCompletionParticipant bawcp, String id) throws WrongStateException, UnknownTransactionException, AlreadyRegisteredException, SystemException
+    {
+        final QName service = BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_QNAME;
+        final QName endpoint = BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_PORT_QNAME;
+        final String address = ServiceRegistryWS.getRegistry().getServiceURI(BusinessActivityWSConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME);
+        final W3CEndpointReference participant = getParticipant(service, endpoint, address, id) ;
+    	try
+    	{
+    	    W3CEndpointReference baPMEndpoint = registerParticipant(participant, BusinessActivityConstants.WSBA_SUB_PROTOCOL_COORDINATOR_COMPLETION);
+            final CoordinatorCompletionParticipantEngineWS engine = new CoordinatorCompletionParticipantEngineWS(id, baPMEndpoint, bawcp) ;
+            CoordinatorCompletionParticipantProcessorWS.getProcessor().activateParticipant(engine, id) ;
+
+            return new BACoordinatorCompletionParticipantManagerStubWS(engine);
+    	}
+    	catch (com.arjuna.wsc.InvalidProtocolException ex)
+    	{
+    	    throw new SystemException(ex.toString());
+    	}
+    	catch (com.arjuna.wsc.InvalidStateException ex)
+    	{
+    	    throw new WrongStateException();
+    	}
+    	catch (com.arjuna.wsc.NoActivityException ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new UnknownTransactionException();
+    	}
+    	catch (Throwable ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    }
+
+    public TxContext suspend () throws SystemException
+    {
+        return _ctxManager.suspend();
+    }
+
+    // resume overwrites. Should we check first a la JTA?
+
+    public void resume (TxContext tx) throws UnknownTransactionException, SystemException
+    {
+        _ctxManager.resume(tx);
+    }
+
+    public TxContext currentTransaction () throws SystemException
+    {
+        return _ctxManager.currentTransaction();
+    }
+
+    private final W3CEndpointReference registerParticipant(final W3CEndpointReference participant, final String protocol)
+        throws com.arjuna.wsc.InvalidProtocolException, com.arjuna.wsc.InvalidStateException, com.arjuna.wsc.NoActivityException, SystemException
+    {
+    	TxContextWSImple currentTx = null;
+
+    	try
+    	{
+    	    currentTx = (TxContextWSImple) _ctxManager.currentTransaction();
+
+    	    if (currentTx == null)
+        		throw new com.arjuna.wsc.NoActivityException();
+
+            final CoordinationContextType coordinationContext = currentTx.context().getCoordinationContext() ;
+            final String messageId = MessageIdWS.getMessageId() ;
+            return RegistrationCoordinatorWS.register(coordinationContext, messageId, participant, protocol) ;
+    	}
+        catch (final SoapFault sf)
+        {
+            throw new SystemException(sf.getMessage());
+        }
+    	catch (com.arjuna.wsc.NoActivityException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    	finally
+    	{
+    	    try
+    	    {
+        		if (currentTx != null)
+        		    _ctxManager.resume(currentTx);
+    	    }
+    	    catch (Exception ex)
+    	    {
+        		ex.printStackTrace();
+    	    }
+    	}
+    }
+
+    private W3CEndpointReference getParticipant(final QName service, final QName endpoint, final String address, final String id)
+    {
+        final W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        builder.serviceName(service);
+        builder.endpointName(endpoint);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, id);
+        return builder.build();
+    }
+
+    private ContextManager _ctxManager = new ContextManager();
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityWSImple.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityWSImple.java	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/classes/com/arjuna/mwlabs/wst/ba/remote/UserBusinessActivityWSImple.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,330 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. 
+ * See the copyright.txt in the distribution for a full listing 
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2003,
+ *
+ * Arjuna Technologies Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: UserBusinessActivityWSImple.java,v 1.10.4.1 2005/11/22 10:36:07 kconner Exp $
+ */
+
+package com.arjuna.mwlabs.wst.ba.remote;
+
+import com.arjuna.mw.wst.UserBusinessActivity;
+import com.arjuna.mw.wst.common.Environment;
+import com.arjuna.mw.wstx.logging.wstxLogger;
+import com.arjuna.mwlabs.wst.ba.ContextWSImple;
+import com.arjuna.mwlabs.wst.ba.context.TxContextWSImple;
+import com.arjuna.webservices.ServiceRegistryWS;
+import com.arjuna.webservices.SoapFault;
+import com.arjuna.webservices.wsarj.InstanceIdentifierWS;
+import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
+import com.arjuna.webservices.wsarjtx.ArjunaTXWSConstants;
+import com.arjuna.webservices.wsba.BusinessActivityConstants;
+import com.arjuna.webservices.wscoor.CoordinationConstantsWS;
+import com.arjuna.wsc.ActivationCoordinatorWS;
+import com.arjuna.wsc.InvalidCreateParametersException;
+import com.arjuna.wsc.RegistrationCoordinatorWS;
+import com.arjuna.wsc.messaging.MessageIdWS;
+import com.arjuna.wst.SystemException;
+import com.arjuna.wst.TransactionRolledBackException;
+import com.arjuna.wst.UnknownTransactionException;
+import com.arjuna.wst.WrongStateException;
+import com.arjuna.wst.stub.BusinessActivityTerminatorStubWS;
+import org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
+
+/**
+ * This is the interface that allows transactions to be started and terminated.
+ * The messaging layer converts the Commit, Rollback and Notify messages into
+ * calls on this.
+ *
+ * @message com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_1 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_1] - Invalid address.
+ * @message com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_2 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_2] - Received context is null!
+ * @message com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_3 [com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_3] - No termination context!
+ */
+
+public class UserBusinessActivityWSImple extends UserBusinessActivity
+{
+    public UserBusinessActivityWSImple()
+    {
+        try
+        {
+            _activationCoordinatorService = System.getProperty(Environment.COORDINATOR_URL);
+
+            /*
+             * If the coordinator URL hasn't been specified via the
+             * configuration file then assume we are using a locally registered
+             * implementation.
+             */
+
+            if (_activationCoordinatorService == null)
+            {
+                final ServiceRegistryWS serviceRegistry = ServiceRegistryWS.getRegistry() ;
+                _activationCoordinatorService = serviceRegistry.getServiceURI(CoordinationConstantsWS.ACTIVATION_SERVICE_NAME) ;
+            }
+        }
+        catch (Exception ex)
+        {
+            // TODO
+
+            ex.printStackTrace();
+        }
+    }
+
+    public void begin () throws WrongStateException, SystemException
+    {
+    	begin(0);
+    }
+
+    public void begin (int timeout) throws WrongStateException, SystemException
+    {
+    	try
+    	{
+    	    if (_ctxManager.currentTransaction() != null)
+        		throw new WrongStateException();
+
+    	    com.arjuna.mw.wsc.context.ContextWS ctx = startTransaction(timeout);
+
+    	    _ctxManager.resume(new TxContextWSImple(ctx));
+    	}
+    	catch (InvalidCreateParametersException ex)
+    	{
+    	    tidyup();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    tidyup();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    	catch (SystemException ex)
+    	{
+    	    tidyup();
+
+    	    throw ex;
+    	}
+    }
+
+    public void close () throws TransactionRolledBackException, UnknownTransactionException, SystemException
+    {
+    	TxContextWSImple ctx = null;
+
+    	try
+    	{
+    	    ctx = (TxContextWSImple) _ctxManager.suspend();
+
+            final String id = ctx.identifier() ;
+            final W3CEndpointReference terminatorCoordinator = getTerminationCoordinator(ctx) ;
+
+    	    BusinessActivityTerminatorStubWS terminatorStub = new BusinessActivityTerminatorStubWS(id, terminatorCoordinator);
+
+    	    terminatorStub.close();
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (TransactionRolledBackException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    	finally
+    	{
+    	    tidyup();
+    	}
+    }
+
+    public void cancel () throws UnknownTransactionException, SystemException
+    {
+    	TxContextWSImple ctx = null;
+
+    	try
+    	{
+            ctx = (TxContextWSImple) _ctxManager.suspend();
+
+            final String id = ctx.identifier() ;
+            final W3CEndpointReference terminatorCoordinator = getTerminationCoordinator(ctx) ;
+
+            BusinessActivityTerminatorStubWS terminatorStub = new BusinessActivityTerminatorStubWS(id, terminatorCoordinator);
+
+    	    terminatorStub.cancel();
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+
+    	    throw new SystemException(ex.toString());
+    	}
+    	finally
+    	{
+    	    tidyup();
+    	}
+    }
+
+    public void complete () throws UnknownTransactionException, SystemException
+    {
+    	try
+    	{
+            final TxContextWSImple ctx = ((TxContextWSImple) _ctxManager.currentTransaction()) ;
+            final String id = ctx.identifier() ;
+            final W3CEndpointReference terminatorCoordinator = getTerminationCoordinator(ctx) ;
+
+            BusinessActivityTerminatorStubWS terminatorStub = new BusinessActivityTerminatorStubWS(id, terminatorCoordinator);
+
+    	    terminatorStub.complete();
+    	}
+    	catch (SystemException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (UnknownTransactionException ex)
+    	{
+    	    throw ex;
+    	}
+    	catch (Exception ex)
+    	{
+    	    throw new SystemException(ex.toString());
+    	}
+    }
+
+    public String transactionIdentifier ()
+    {
+    	try
+    	{
+    	    return _ctxManager.currentTransaction().toString();
+    	}
+    	catch (SystemException ex)
+    	{
+    	    return "Unknown";
+    	}
+    	catch (NullPointerException ex)
+    	{
+    	    return "Unknown";
+    	}
+    }
+
+    public String toString ()
+    {
+    	return transactionIdentifier();
+    }
+
+    private final com.arjuna.mw.wsc.context.ContextWS startTransaction (int timeout) throws InvalidCreateParametersException, SystemException
+    {
+        try
+        {
+            final Long expires = (timeout > 0 ? new Long(timeout) : null) ;
+            final String messageId = MessageIdWS.getMessageId() ;
+            final CoordinationContextType coordinationContext = ActivationCoordinatorWS.createCoordinationContext(
+                    _activationCoordinatorService, messageId, BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME, expires, null) ;
+            if (coordinationContext == null)
+            {
+                throw new SystemException(
+                    wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_2"));
+            }
+            return new ContextWSImple(coordinationContext) ;
+        }
+        catch (final InvalidCreateParametersException icpe)
+        {
+            throw icpe ;
+        }
+        catch (final SoapFault sf)
+        {
+            throw new SystemException(sf.getMessage()) ;
+        }
+        catch (final Exception ex)
+        {
+            throw new SystemException(ex.toString());
+        }
+	}
+
+    private W3CEndpointReference getTerminationCoordinator(final TxContextWSImple ctx)
+        throws SystemException
+    {
+        final CoordinationContextType coordinationContext = ctx.context().getCoordinationContext() ;
+        final String messageId = MessageIdWS.getMessageId() ;
+        try
+        {
+            return RegistrationCoordinatorWS.register(coordinationContext, messageId,
+                getParticipantProtocolService(ctx.identifier()), ArjunaTXConstants.WSARJTX_PROTOCOL_TERMINATION) ;
+        }
+        catch (final Throwable th)
+        {
+            throw new SystemException(wstxLogger.log_mesg.getString("com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple_3"));
+        }
+    }
+
+    private W3CEndpointReference getParticipantProtocolService(final String id)
+    {
+        // final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
+        // final String serviceURI = soapRegistry.getServiceURI(ArjunaTXConstants.SERVICE_TERMINATION_PARTICIPANT) ;
+        final QName serviceId = ArjunaTXWSConstants.TERMINATION_PARTICIPANT_SERVICE_QNAME;
+        final QName endpointId = ArjunaTXWSConstants.TERMINATION_PARTICIPANT_PORT_QNAME;
+        final String address = ServiceRegistryWS.getRegistry().getServiceURI(ArjunaTXWSConstants.TERMINATION_PARTICIPANT_SERVICE_NAME);
+        W3CEndpointReferenceBuilder builder = new W3CEndpointReferenceBuilder();
+        builder.serviceName(serviceId);
+        builder.endpointName(endpointId);
+        builder.address(address);
+        InstanceIdentifierWS.setEndpointInstanceIdentifier(builder, id) ;
+        return builder.build();
+    }
+
+    private final void tidyup ()
+    {
+    	try
+    	{
+    	    _ctxManager.suspend();
+    	}
+    	catch (Exception ex)
+    	{
+    	    ex.printStackTrace();
+    	}
+    }
+
+    private ContextManager _ctxManager = new ContextManager();
+    private String _activationCoordinatorService;
+}
\ No newline at end of file

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst11.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst11.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wst11.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,48 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<deployment>
+	<service name="UserTransaction">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.remote.UserTransactionWSImple"/>
+
+		<!-- <parameter name="className"
+	value="com.arjuna.mwlabs.wst.at.local.UserTransactionImple"/ -->
+
+	</service>
+	<service name="TransactionManager">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.remote.TransactionManagerWSImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.local.TransactionManagerImple"/ -->
+	</service>
+	<service name="UserBusinessActivity">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.local.UserBusinessActivityImple"/ -->
+	</service>
+	<service name="BusinessActivityManager">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.remote.BusinessActivityManagerImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.local.BusinessActivityManagerImple"/ -->
+	</service>
+</deployment>

Modified: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -36,10 +36,18 @@
 	    <property
 	    name="com.arjuna.mw.wscf.protocolImplementation3"
 	    value="com.arjuna.mwlabs.wscf.model.sagas.arjunacore.SagasHLSImple"/>
+        <property
+        name="com.arjuna.mw.wscf.protocolImplementation4"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryImple"/>
+
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation1"
+        value="com.arjuna.mwlabs.wst.at.ContextFactoryWSImple"/>
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation2"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple"/>
+
 	    <property
-	    name="com.arjuna.mw.wscf.protocolImplementation4"
-	    value="com.arjuna.mwlabs.wst.ba.ContextFactoryImple"/>
-	    <property
 	    name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
 	    value="XTSObjectStore"/>
 

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx11.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx11.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/config/wstx11.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,58 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+
+<wstx-config>
+	<properties>
+	    <property name="com.arjuna.mw.wsas.deploymentContext"
+	    value="com.arjuna.mwlabs.wst.at.context.DeploymentContextImple"/>
+	    <property name="com.arjuna.mw.wscf.protocols.twophase.context"
+	    value="com.arjuna.mwlabs.wst.at.context.ArjunaContextWSImple"/>
+	    <property name="com.arjuna.mw.wscf.protocols.sagas.context"
+	    value="com.arjuna.mwlabs.wst.ba.context.ArjunaContextWSImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation1"
+	    value="com.arjuna.mwlabs.wscf.model.twophase.arjunacore.TwoPhaseHLSImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation2"
+	    value="com.arjuna.mwlabs.wst.at.ContextFactoryImple"/>
+	    <property
+	    name="com.arjuna.mw.wscf.protocolImplementation3"
+	    value="com.arjuna.mwlabs.wscf.model.sagas.arjunacore.SagasHLSImple"/>
+        <property
+        name="com.arjuna.mw.wscf.protocolImplementation4"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryImple"/>
+
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation1"
+        value="com.arjuna.mwlabs.wst.at.ContextFactoryWSImple"/>
+        <property
+        name="com.arjuna.mw.wscfws.protocolImplementation2"
+        value="com.arjuna.mwlabs.wst.ba.ContextFactoryWSImple"/>
+
+	    <property
+	    name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
+	    value="XTSObjectStore"/>
+
+	    <property
+	    name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
+	    value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
+	</properties>
+</wstx-config>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction11.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction11.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/AtomicTransaction11.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,23 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 20067, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<coordination-type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\mlittle\Desktop\standards work\WS architecture\WSCF\0.8.2\xml\WSCF.xsd">
+<coordinator-type>http://docs.oasis-open.org/ws-tx/wsat/2006/06</coordinator-type>
+</coordination-type>

Added: labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity11.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity11.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/WSTX/xml/BusinessActivity11.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,23 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2007, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<coordination-type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\mlittle\Desktop\standards work\WS architecture\WSCF\0.8.2\xml\WSCF.xsd">
+<coordinator-type>http://docs.oasis-open.org/ws-tx/wsba/2006/06/AtomicOutcome</coordinator-type>
+</coordination-type>

Modified: labs/jbosstm/workspace/adinn/XTSGF/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -45,7 +45,7 @@
     <property name="com.arjuna.buildsystem.lib.jars" value="buildsystem.jar"/>
     <property name="com.arjuna.jta.install.lib.jars" value="jbossjta.jar"/>
     <property name="com.arjuna.jta.install.ext.jars" value="jbossts-common.jar commons-logging.jar  log4j-1.2.8.jar"/>
-    <property name="com.arjuna.xts.ext.jars" value="jaxrpc.jar saaj-api.jar servlet.jar stax-api-1.0.jar wstx-asl-2.0.3.jar"/>
+    <property name="com.arjuna.xts.ext.jars" value="jaxrpc.jar saaj-api.jar servlet.jar stax-api-1.0.jar wstx-asl-2.0.3.jar wsbrew.jar"/>
 
 	<!-- Set internal property defaults -->
 
@@ -232,7 +232,9 @@
 		</copy>
         <copy todir="${com.arjuna.mwlabs.installationdirectory}/coordinator/dd">
             <fileset dir="WS-C/dev/dd" includes="ws-c_web-app.xml"/>
+            <fileset dir="WS-C/build/dev/dd" includes="wsdl/*"/>
             <fileset dir="WS-T/dev/dd" includes="ws-t_web-app.xml"/>
+            <fileset dir="WS-T/build/dev/dd" includes="wsdl/*"/>
         </copy>
 
         <echo message="Installing demo"/>

Modified: labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/coordinator/dd/xts-coord_application.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -35,6 +35,13 @@
 
     <module>
         <web>
+            <web-uri>ws-c11.war</web-uri>
+            <context-root>/xts11</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
             <web-uri>ws-t.war</web-uri>
             <context-root>/ws-t</context-root>
         </web>
@@ -42,6 +49,13 @@
 
     <module>
         <web>
+            <web-uri>ws-t11.war</web-uri>
+            <context-root>/ws-t</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
             <web-uri>wscf.war</web-uri>
             <context-root>/wscf</context-root>
         </web>

Modified: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/application.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -18,56 +18,91 @@
   (C) 2005-2006,
   @author JBoss Inc.
 -->
-
-<!-- $Id: axis-application.xml,v 1.8.4.1 2005/11/22 10:42:05 kconner Exp $ -->
-
-<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
-
-<application>
-    <display-name>XML Transaction Service Demo</display-name>
-
-    <description>XML Transaction Service Demo</description>
-
-    <module>
-        <web>
-            <web-uri>ws-c.war</web-uri>
-            <context-root>/xts</context-root>
-        </web>
-    </module>
-    
-    <module>
-        <web>
-            <web-uri>ws-t.war</web-uri>
-            <context-root>/ws-t</context-root>
-        </web>
-    </module>
-
-    <module>
-        <web>
-            <web-uri>wscf.war</web-uri>
-            <context-root>/wscf</context-root>
-        </web>
-    </module>
-
-    <module>
-        <web>
-            <web-uri>wstx.war</web-uri>
-            <context-root>/wstx</context-root>
-        </web>
-    </module>
-
-    <module>
-        <web>
-            <web-uri>xts-demo-webservices.war</web-uri>
-            <context-root>/xtsdemowebservices</context-root>
-        </web>
-    </module>
-
-    <module>
-        <web>
-            <web-uri>xts-demo.war</web-uri>
-            <context-root>/xts-demo</context-root>
-        </web>
-    </module>
-
-</application>
+
+<!-- $Id: axis-application.xml,v 1.8.4.1 2005/11/22 10:42:05 kconner Exp $ -->
+
+<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
+
+<application>
+    <display-name>XML Transaction Service Demo</display-name>
+
+    <description>XML Transaction Service Demo</description>
+
+    <module>
+        <web>
+            <web-uri>ws-c.war</web-uri>
+            <context-root>/xts</context-root>
+        </web>
+    </module>
+    
+    <module>
+        <web>
+            <web-uri>ws-c11.war</web-uri>
+            <context-root>/ws-c11</context-root>
+        </web>
+    </module>
+    
+    <module>
+        <web>
+            <web-uri>ws-c11init.war</web-uri>
+            <context-root>/ws-c11init</context-root>
+        </web>
+    </module>
+    
+    <module>
+        <web>
+            <web-uri>ws-t.war</web-uri>
+            <context-root>/ws-t</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>ws-t11.war</web-uri>
+            <context-root>/ws-t11</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>ws-t11init.war</web-uri>
+            <context-root>/ws-t11init</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>wscf.war</web-uri>
+            <context-root>/wscf</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>wscf11.war</web-uri>
+            <context-root>/wscf11</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>wstx.war</web-uri>
+            <context-root>/wstx</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>xts-demo-webservices.war</web-uri>
+            <context-root>/xtsdemowebservices</context-root>
+        </web>
+    </module>
+
+    <module>
+        <web>
+            <web-uri>xts-demo.war</web-uri>
+            <context-root>/xts-demo</context-root>
+        </web>
+    </module>
+
+</application>

Added: labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wst.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wst.xml	                        (rev 0)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/dd/jboss/wst.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -0,0 +1,48 @@
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, Red Hat Middleware LLC, and individual contributors
+  as indicated by the @author tags. 
+  See the copyright.txt in the distribution for a full listing 
+  of individual contributors.
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU General Public License, v. 2.0.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License,
+  v. 2.0 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<deployment>
+	<service name="UserTransaction">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.remote.UserTransactionWSImple"/>
+
+		<!-- <parameter name="className"
+	value="com.arjuna.mwlabs.wst.at.local.UserTransactionImple"/ -->
+
+	</service>
+	<service name="TransactionManager">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.remote.TransactionManagerWSImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.at.local.TransactionManagerImple"/ -->
+	</service>
+	<service name="UserBusinessActivity">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.remote.UserBusinessActivityWSImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.local.UserBusinessActivityImple"/ -->
+	</service>
+	<service name="BusinessActivityManager">
+		<parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.remote.BusinessActivityManagerImple"/>
+		<!-- parameter name="className"
+		value="com.arjuna.mwlabs.wst.ba.local.BusinessActivityManagerImple"/ -->
+	</service>
+</deployment>

Modified: labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/BasicClient.java
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/BasicClient.java	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/src/com/jboss/jbosstm/xts/demo/client/BasicClient.java	2008-01-11 17:27:13 UTC (rev 17737)
@@ -308,7 +308,7 @@
     
     /**
      * Initialise the servlet.
-     * @param servletConfig The servlet configuration.
+     * @param config The servlet configuration.
      */
     public void init(final ServletConfig config)
         throws ServletException

Modified: labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml	2008-01-11 16:52:45 UTC (rev 17736)
+++ labs/jbosstm/workspace/adinn/XTSGF/demo/xts-build.xml	2008-01-11 17:27:13 UTC (rev 17737)
@@ -54,7 +54,7 @@
 
     <!-- XTS and JTA libs we need in the deployed classpath -->
     <property name="lib.libs" value="wstx.jar ws-t.jar ws-c.jar"/>
-    <property name="ext.libs" value="jbossjta.jar"/>
+    <property name="ext.libs" value="jbossjta.jar wsbrew.jar"/>
 
     <!-- gf javee libs we need to compile against -->
     <property name="gf.libs" value="javaee.jar"/>
@@ -157,26 +157,26 @@
         <filter token="hostname" value="${hostname}"/>
         <filter token="port" value="${port}"/>
         <copy todir="${build.config}" filtering="true">
-            <fileset dir="${conf.dir}" includes="wscf.xml wstx.xml wst.xml"/>
-        </copy>
+            <fileset dir="${conf.dir}" includes="wscf.xml wscf11.xml wstx.xml wstx11.xml wst.xml wst11.xml"/>
+	</copy>
+	<!-- these lines switch in wscoor1.1 support -->
+	<move file="${build.config}/wst11.xml" tofile="${build.config}/wst.xml"/>
+	<move file="${build.config}/wstx11.xml" tofile="${build.config}/wstx.xml"/>
+	<move file="${build.config}/wscf11.xml" tofile="${build.config}/wscf.xml"/>
         <jar destfile="${build.dir}/config.jar" basedir="${build.config}"/>
     </target>
 
     <target name="jboss-webservices" depends="compile">
         <copy tofile="${build.dir}/classes/com/jboss/jbosstm/xts/demo/services/context-handlers.xml"
 	      file="${jboss.dd.dir}/context-handlers.xml"/>
-        <copy todir="${build.dir}/classes/com/jboss/jbosstm/xts/demo/services/">
-	      <fileset dir="${jboss.dd.dir}">
-		  <include name="wsdl/*.wsdl"/>
-	      </fileset>
-	</copy>
 <!--
         <war destfile="${build.dir}/xts-demo-webservices.war" webxml="${jboss.dd.dir}/service-web-app.xml">
 -->
         <war destfile="${build.dir}/xts-demo-webservices.war"
 	     needxmlfile="false">
+	    <!-- include app wsdl and wscoor wsdl -->
             <webinf dir="${jboss.dd.dir}" includes="wsdl/*.wsdl"/>
-            <metainf dir="${jboss.dd.dir}" includes="webservices.xml"/>
+            <webinf dir="${xts.home}/coordinator/dd" includes="wsdl/*.wsdl"/>
 	        <!-- server impl -->
 	    <webinf dir="${build.dir}"
 		includes="classes/com/jboss/jbosstm/xts/demo/services/**/*"/>
@@ -206,7 +206,9 @@
         </copy>
 
         <war warfile="${build.dir}/xts-demo.war" webxml="${build.dir}/client-web-app.xml">
+	    <!-- include app wsdl and wscoor wsdl -->
             <webinf dir="${jboss.dd.dir}" includes="wsdl/*.wsdl"/>
+            <webinf dir="${xts.home}/coordinator/dd" includes="wsdl/*.wsdl"/>
 	    <webinf dir="${build.dir}"
 		includes="classes/com/jboss/jbosstm/xts/demo/client/**"/>
 	    <webinf dir="${build.dir}"

Deleted: labs/jbosstm/workspace/adinn/XTSGF/ext/jaxws-2_1-mrel2-api.jar
===================================================================
(Binary files differ)

Modified: labs/jbosstm/workspace/adinn/XTSGF/ext/saaj-api.jar
===================================================================
(Binary files differ)

Added: labs/jbosstm/workspace/adinn/XTSGF/ext/wsbrew.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/workspace/adinn/XTSGF/ext/wsbrew.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-svn-commits mailing list